{
  "contractName": "WitOracleBaseQueriable",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidDataReport",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Received",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmRequester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "Witnet.RadonHash",
          "name": "radonHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.QuerySLA",
          "name": "radonParams",
          "type": "tuple"
        }
      ],
      "name": "WitOracleQuery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryReport",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackGas",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryReportDelivery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmDisputer",
          "type": "address"
        }
      ],
      "name": "WitOracleQueryReportDispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmSender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryUpgrade",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmOrigin",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmReporter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "Witnet.TransactionHash",
          "name": "witDrTxHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "Witnet.RadonHash",
          "name": "queryRadHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.QuerySLA",
          "name": "queryParams",
          "type": "tuple"
        },
        {
          "indexed": false,
          "internalType": "Witnet.Timestamp",
          "name": "resultTimestamp",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "WitOracleReport",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackActualGas",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evmCallbackRevertReason",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "WitOracleResportDeliveryFailed",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currency",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "deleteQuery",
      "outputs": [
        {
          "internalType": "Witnet.QueryEvmReward",
          "name": "",
          "type": "uint72"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "parseDataReport",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "pushDataReport",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "registry",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "channel",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatus",
      "outputs": [
        {
          "internalType": "enum Witnet.QueryStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint24",
          "name": "_evmCallbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "estimateBaseFeeWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_evmWitPrice",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "estimateExtraFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQuery",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint24",
                  "name": "callbackGas",
                  "type": "uint24"
                },
                {
                  "internalType": "bytes",
                  "name": "radonBytecode",
                  "type": "bytes"
                },
                {
                  "internalType": "Witnet.RadonHash",
                  "name": "radonHash",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct Witnet.QueryRequest",
              "name": "request",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "reporter",
                  "type": "address"
                },
                {
                  "internalType": "Witnet.Timestamp",
                  "name": "resultTimestamp",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.TransactionHash",
                  "name": "resultDrTxHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "resultCborBytes",
                  "type": "bytes"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                }
              ],
              "internalType": "struct Witnet.QueryResponse",
              "name": "response",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "slaParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "uuid",
              "type": "bytes15"
            },
            {
              "internalType": "Witnet.QueryEvmReward",
              "name": "reward",
              "type": "uint72"
            },
            {
              "internalType": "Witnet.BlockNumber",
              "name": "checkpoint",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.Query",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryEvmReward",
      "outputs": [
        {
          "internalType": "Witnet.QueryEvmReward",
          "name": "",
          "type": "uint72"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQueryRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bytes",
              "name": "radonBytecode",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "radonHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Witnet.QueryRequest",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQueryResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "reporter",
              "type": "address"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "resultDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            }
          ],
          "internalType": "struct Witnet.QueryResponse",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResult",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultStatus",
      "outputs": [
        {
          "internalType": "enum Witnet.ResultStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultStatusDescription",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultTrails",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "queryUUID",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.TransactionHash",
          "name": "resultDrTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.Timestamp",
          "name": "resultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "resultFinalityBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatusString",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_queryIds",
          "type": "uint256[]"
        }
      ],
      "name": "getQueryStatusBatch",
      "outputs": [
        {
          "internalType": "enum Witnet.QueryStatus[]",
          "name": "_status",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNextQueryId",
      "outputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "queryData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "consumer",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "gasLimit",
              "type": "uint24"
            }
          ],
          "internalType": "struct Witnet.QueryCallback",
          "name": "_queryCallback",
          "type": "tuple"
        }
      ],
      "name": "queryDataWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "upgradeQueryEvmReward",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDataReport\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmRequester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"radonParams\",\"type\":\"tuple\"}],\"name\":\"WitOracleQuery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"WitOracleQueryReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmConsumer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackGas\",\"type\":\"uint256\"}],\"name\":\"WitOracleQueryReportDelivery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmDisputer\",\"type\":\"address\"}],\"name\":\"WitOracleQueryReportDispute\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"}],\"name\":\"WitOracleQueryUpgrade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmOrigin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmConsumer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmReporter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"name\":\"WitOracleReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmConsumer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackActualGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"evmCallbackRevertReason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"name\":\"WitOracleResportDeliveryFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"channel\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"queryId\",\"type\":\"uint256\"}],\"name\":\"deleteQuery\",\"outputs\":[{\"internalType\":\"Witnet.QueryEvmReward\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"estimateBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"_evmCallbackGasLimit\",\"type\":\"uint24\"}],\"name\":\"estimateBaseFeeWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_evmWitPrice\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"}],\"name\":\"estimateExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextQueryId\",\"outputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"getQuery\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bytes\",\"name\":\"radonBytecode\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.QueryRequest\",\"name\":\"request\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"resultDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"internalType\":\"struct Witnet.QueryResponse\",\"name\":\"response\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"slaParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.QueryUUID\",\"name\":\"uuid\",\"type\":\"bytes15\"},{\"internalType\":\"Witnet.QueryEvmReward\",\"name\":\"reward\",\"type\":\"uint72\"},{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"checkpoint\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.Query\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryEvmReward\",\"outputs\":[{\"internalType\":\"Witnet.QueryEvmReward\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"getQueryRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bytes\",\"name\":\"radonBytecode\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.QueryRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"getQueryResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"resultDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"internalType\":\"struct Witnet.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResult\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultStatus\",\"outputs\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultStatusDescription\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultTrails\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"queryUUID\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"resultDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"resultFinalityBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getQueryStatus\",\"outputs\":[{\"internalType\":\"enum Witnet.QueryStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_queryIds\",\"type\":\"uint256[]\"}],\"name\":\"getQueryStatusBatch\",\"outputs\":[{\"internalType\":\"enum Witnet.QueryStatus[]\",\"name\":\"_status\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryStatusString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"report\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"parseDataReport\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"report\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"pushDataReport\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.RadonHash\",\"name\":\"_queryRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"}],\"name\":\"queryData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.RadonHash\",\"name\":\"_queryRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"gasLimit\",\"type\":\"uint24\"}],\"internalType\":\"struct Witnet.QueryCallback\",\"name\":\"_queryCallback\",\"type\":\"tuple\"}],\"name\":\"queryDataWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"upgradeQueryEvmReward\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation\",\"kind\":\"dev\",\"methods\":{\"deleteQuery(uint256)\":{\"details\":\"Fails if the query is not in a final status, or not called from the actual requester.\",\"params\":{\"queryId\":\"The unique query identifier.\"}},\"estimateBaseFee(uint256)\":{\"params\":{\"_evmGasPrice\":\"Expected gas price to pay upon posting the data request.\"}},\"estimateBaseFeeWithCallback(uint256,uint24)\":{\"params\":{\"_evmCallbackGasLimit\":\"Maximum gas to be spent when reporting the data request result.\",\"_evmGasPrice\":\"Expected gas price to pay upon posting the data request.\"}},\"estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))\":{\"details\":\"The extra fee gets calculated in proportion to:\",\"params\":{\"_evmGasPrice\":\"Tentative EVM gas price at the moment the query result is ready.\",\"_evmWitPrice\":\"Tentative nanoWit price in Wei at the moment the query is solved on the Wit/Oracle blockchain.\",\"_querySLA\":\"The query SLA data security parameters as required for the Wit/Oracle blockchain. \"}},\"getQueryRequest(uint64)\":{\"params\":{\"_queryId\":\"The unique query identifier.\"}},\"getQueryResponse(uint64)\":{\"details\":\"Fails if the `_queryId` is not in 'Reported' status.\",\"params\":{\"_queryId\":\"The unique query identifier\"}},\"upgradeQueryEvmReward(uint256)\":{\"details\":\"Fails if the `_queryId` is not in 'Posted' status.\",\"params\":{\"_queryId\":\"The unique query identifier.\"}}},\"title\":\"Queriable WitOracle base implementation.\",\"version\":1},\"userdoc\":{\"events\":{\"WitOracleQuery(address,uint256,uint256,uint64,bytes32,(uint16,uint16,uint64))\":{\"notice\":\"Emitted every time a new query containing some verified data request is posted to the WitOracle.\"},\"WitOracleQueryReport(uint64,uint256)\":{\"notice\":\"Emitted when a query with no callback gets reported into the WRB.\"},\"WitOracleQueryReportDelivery(uint64,address,uint256,uint256)\":{\"notice\":\"Emitted when a query with a callback gets successfully reported into the WRB.\"},\"WitOracleQueryUpgrade(uint64,address,uint256,uint256)\":{\"notice\":\"Emitted when the reward of some not-yet reported query gets upgraded.\"},\"WitOracleResportDeliveryFailed(uint64,address,uint256,uint256,string,bytes)\":{\"notice\":\"Emitted when a query with a callback cannot get reported into the WRB.\"}},\"kind\":\"user\",\"methods\":{\"channel()\":{\"notice\":\"Uniquely identifies the WitOracle instance and the chain on which it's deployed.\"},\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"deleteQuery(uint256)\":{\"notice\":\"Removes all query data from storage. Pays back reward on expired queries.\"},\"estimateBaseFee(uint256)\":{\"notice\":\"Estimate the minimum reward required for posting a data request.\"},\"estimateBaseFeeWithCallback(uint256,uint24)\":{\"notice\":\"Estimate the minimum reward required for posting a data request with a callback.\"},\"estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))\":{\"notice\":\"Estimate the extra reward (i.e. over the base fee) to be paid when posting a newdata query in order to avoid getting provable \\\"too low incentives\\\" results fromthe Wit/Oracle blockchain. \"},\"getNextQueryId()\":{\"notice\":\"Returns next query id to be generated by the Witnet Request Board.\"},\"getQuery(uint64)\":{\"notice\":\"Gets the whole Query data contents, if any, no matter its current status.\"},\"getQueryEvmReward(uint256)\":{\"notice\":\"Gets the current EVM reward the report can claim, if not done yet.\"},\"getQueryRequest(uint64)\":{\"notice\":\"Retrieves the RAD hash and SLA parameters of the given query.\"},\"getQueryResponse(uint64)\":{\"notice\":\"Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \"},\"getQueryResultTrails(uint256)\":{\"notice\":\"Gets query's result back tracing trails\"},\"getQueryStatus(uint256)\":{\"notice\":\"Gets current status of given query.\"},\"parseDataReport((bytes32,bytes32,(uint16,uint16,uint64),uint64,bytes),bytes)\":{\"notice\":\"Verify the data report (as provided by Wit/Kermit API) is well-formed and authentic, returning the parsed Witnet.DataResult if so, or reverting otherwise.\"},\"pushDataReport((bytes32,bytes32,(uint16,uint16,uint64),uint64,bytes),bytes)\":{\"notice\":\"Same as `parseDataReport` but on certain implementations it may store roll-up information  that will contribute to reduce the cost of verifying and/or rolling-up future data reports. Emits `DataReport` if report is authentic. \"},\"registry()\":{\"notice\":\"Returns the WitOracleRadonRegistry in which Witnet-compliant Radon requestscan be formally verified and forever registered as a away to let smart contracts and users to track actual data sources and offchain computations applied on data updates safely reported from the Wit/Oracle blockchain. \"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"upgradeQueryEvmReward(uint256)\":{\"notice\":\"Increments the reward of a previously posted request by adding the transaction value to it.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/base/WitOracleBaseQueriable.sol\":\"WitOracleBaseQueriable\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"project:/contracts/WitOracle.sol\":{\"keccak256\":\"0x7f20eab15140df459753dfa8e406b826918b56ebe2c46456f9d04345c02629d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0573ce3d48200c71d8235a1a8c055b706420b2037bd21336f3c61713c3b8349\",\"dweb:/ipfs/QmY7BnVaNXFtJs1BFdeaa7dQfvUVoZyfwtv9HuToCxUUHU\"]},\"project:/contracts/WitOraclePushOnly.sol\":{\"keccak256\":\"0x659b4746c5a773b554b7a94bea3f55a995a8f850d750108302a8face9d1c833c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291c6b4cd5c0f223ee63cc8cee2e228f47e1344a935eb89b6ef8f993eb5ce18e\",\"dweb:/ipfs/QmeKNLaVURv4N5jz5z67WQ4wyUUucqMaYLZQ2NnuuNyyPS\"]},\"project:/contracts/WitOracleRadonRegistry.sol\":{\"keccak256\":\"0xc9bd0ab02e13b36fe4072868ae978a230c5132a702d6594f11270ec5e7926e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8321305b131abec96c492302163d95f8777106f74a0d42f5f50fdf60d2b3a381\",\"dweb:/ipfs/QmRx7FGWPkC41afPuJpBTDQ85wjH95Dbi3qAxVNfNZUsWe\"]},\"project:/contracts/core/base/WitOracleBasePushOnly.sol\":{\"keccak256\":\"0xdf4be00f732674d6a1a83fbb5801571690623a17b7388613af3a3debadf9ce2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b4b8a611ed9186249e30fcaeecc1d7bbda50338e794d5b65865f885f20ec6e\",\"dweb:/ipfs/Qme8xqsdQqdyDuy1DYijquG6LGJHqRzyruZ1MR6hPJCxmY\"]},\"project:/contracts/core/base/WitOracleBaseQueriable.sol\":{\"keccak256\":\"0xed332c1131be86c1b97223e0488488f7091fe84f21b88fd2724cb7c0d91397ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8c48b617f0696470db8914a6c8627fc6c85ef09794e2d13accbbe73399442bb\",\"dweb:/ipfs/QmVG1wvboCBWGw2Q2Lr7yqTmBNwzspyD3mTMYkZm57WY31\"]},\"project:/contracts/data/WitOracleDataLib.sol\":{\"keccak256\":\"0x879c513c3cac839300e954d5ffe61c14eaec3052b39898ec2402068169fddd55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f58f4aa26e2a174fb5cee2fd9c06a10c337e6766b804e38bb4bbb3c3d4682d\",\"dweb:/ipfs/QmTjS8hws4VAd3S8dpNmX3zyV7oCF7xJ7AZTRJwrmbhSmi\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleAppliance.sol\":{\"keccak256\":\"0xcd8e57eca7f8042c85a83264e2ff6d1cd7a9f1521831736d7f57bcc7800642e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c639668e9439d60770b5df77436088ae7bd0aeb1d1be446552a98b6c29138f0\",\"dweb:/ipfs/QmbN3f5YuKMSd2j9tjay3VEkiYibGWpbfbwRNyrxA8k4o4\"]},\"project:/contracts/interfaces/IWitOracleQueriable.sol\":{\"keccak256\":\"0xdb0da1e377a35a7d620f43cb583a876750a52d91da2b888f48042483ad9c4910\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfcdf3e96ec3c5de7438f82e3d5a1dc9af9eb29080044213dccb26ff978354c\",\"dweb:/ipfs/Qmap2FzSysh2fug88eortbsTM7itFygRzKc9HfV43ePMik\"]},\"project:/contracts/interfaces/IWitOracleQueriableConsumer.sol\":{\"keccak256\":\"0xe8143d2387d674022f453b57652998f53cbe4c21fe35e59421428142355c8ebf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e6c3e3d3e7168a3fb75b1eca23d078d5240e5b02dac8a449d1ddf79256a34d8\",\"dweb:/ipfs/QmbGk4tQzTogTBVYiT8t3Gqtk6qDs5nyp9Z53GryTjKAm5\"]},\"project:/contracts/interfaces/IWitOracleQueriableEvents.sol\":{\"keccak256\":\"0x47c283e931006d35bd2599524f86724e45eae6fad2fdd9cdecd1c85a90ff3f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ad0520f99ec9298536ae9434f58caeb470c10dd3eaab1e4c7ed4cae9a97e2a2\",\"dweb:/ipfs/QmSuYCsSPweZfQc5Fbf9jYDdx4u7gwYCUdjhpcrrxmWZy6\"]},\"project:/contracts/interfaces/IWitOracleQueriableExperimental.sol\":{\"keccak256\":\"0x57c0007d813ed3e6dd3e0bb128e6ca7a0324214962823c6456e2e37d78ab4070\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5edc498ccc728327f1f3c80d2decd7ca64920a3aee4faaba08dd354f1256b66\",\"dweb:/ipfs/QmdEJWUtQqTVdFLCiNKUPSe3NwXzuHmG6XzA1VbHHHgdPy\"]},\"project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol\":{\"keccak256\":\"0x043a719845d75dccc3c7c046fdd214bb252ab2b85400fbd139ed5cea9469becc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b1be7cbf990ff4d383b1c0695626af794442f9a48f02e13435793c4316ff011\",\"dweb:/ipfs/QmX3Lq17FMsN2T9K4fAYg6CRTYjwHd6hT1XKjEA2T7QeM5\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistryEvents.sol\":{\"keccak256\":\"0x9bd30477aeb33de11c4f1df3cd7451452a90ffed1f6eabd9e643046bf1e60d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fb38c5528ed2e1bf90ff8d123bf5a9523d0dc49f448d6c39ddad1cd9048d0a\",\"dweb:/ipfs/QmQq1RUwFgnGTk3xDAmN6u2WMPBzvjZNJc7TPYtG6aZfRn\"]},\"project:/contracts/interfaces/IWitOracleTrustableAdmin.sol\":{\"keccak256\":\"0x94b69b5a460d1407746ac70d32a0c5d4fca564b16cbd1940b822dd0ecb5336e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a773b9d963647a5591b95c8fb359efd461dc494d1e3a1754cc83343310e07605\",\"dweb:/ipfs/QmU77Zre43r5sVj4DK2FjTda31zWgNDr9sGPug1dRv4ih6\"]},\"project:/contracts/interfaces/legacy/IWitOracleLegacy.sol\":{\"keccak256\":\"0xd2929c9aa5a02d261d6d1a068a6b7231ae58d8f81f081ba89f2d3267a31fbbb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://956b26323a02cf400c32012586954fc5dbc98b4d5b7a8b0533401cbda8619059\",\"dweb:/ipfs/QmSWdCRwL5t3atFM8osdaohLTqEEmY1FbnR6xrRCmw1GDM\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequest.sol\":{\"keccak256\":\"0x0fb3f0ba03f4f7a0214ecb36df26525564cf51a8a2176cba92c185af8a1d419e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://340b7bdb92c3259519fe120eb3061b393e7a5e9c1b576a2fe4eab020af466b64\",\"dweb:/ipfs/QmRt4wMX9WdxFwfdFMUZ3zKMAW1grS7qLk1x1PDMJdEAVU\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequestTemplate.sol\":{\"keccak256\":\"0x9e065ef5880c64eefff5fcfb1347fde6684e0e311f8c2350a6aefdbd1f8b0f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://817de760c7cce9d00dcd4312aea6434d88abddf1c0e68ea7e8fb1e6c5165a445\",\"dweb:/ipfs/QmUNmtn85nFXbje2nRJQY2h65KJCVinDMMU6P2jQmo1Nij\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/WitOracleResultStatusLib.sol\":{\"keccak256\":\"0x9ea0a1a68498957ee7baaae50e078ee845dacd031f129b0a3cbf40cd413f3efb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0836f04c9ed07cb90b54b07b38eb95fba769be0d921e687fe1184d6570ff34e8\",\"dweb:/ipfs/QmPv9g3KGobVdr5bsCv5715V97DmEdTqzz9mhbEZjugqgC\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x29ce79b9329cc854ddb0ee546e5a17f3cedafa91c7d614f43e8d6537680b1734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00d5ce85f66c3c32b8b69bfed2f07f40d14ac72c2f67d2de6601de0be16b5af1\",\"dweb:/ipfs/QmZogwLRBjFUJVSzR8YuMfo3mKg8WvYVbn2QvWXsCVP92V\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./WitOracleBasePushOnly.sol\";\r\n\r\nimport \"../../WitOracle.sol\";\r\nimport \"../../data/WitOracleDataLib.sol\";\r\nimport \"../../interfaces/IWitOracleQueriableConsumer.sol\";\r\nimport \"../../libs/WitOracleResultStatusLib.sol\";\r\nimport \"../../patterns/Payable.sol\";\r\n\r\n/// @title Queriable WitOracle base implementation.\r\n/// @author The Witnet Foundation\r\nabstract contract WitOracleBaseQueriable\r\n    is \r\n        Payable,\r\n        WitOracle\r\n{\r\n    using Witnet for Witnet.QuerySLA;\r\n    using WitOracleDataLib for WitOracleDataLib.Storage;\r\n\r\n    function channel() virtual override public view returns (bytes4) {\r\n        return Witnet.channel(address(this));\r\n    }\r\n\r\n    IWitOracleRadonRegistry public immutable override registry;\r\n\r\n    uint256 internal immutable __reportResultGasBase;\r\n    uint256 internal immutable __reportResultWithCallbackGasBase;\r\n    uint256 internal immutable __reportResultWithCallbackRevertGasBase;\r\n    uint256 internal immutable __sstoreFromZeroGas;\r\n\r\n    modifier checkQueryCallback(Witnet.QueryCallback memory callback) virtual {\r\n        _require(\r\n            address(callback.consumer).code.length > 0\r\n                && IWitOracleQueriableConsumer(callback.consumer).reportableFrom(address(this))\r\n                && callback.gasLimit > 0,\r\n            \"invalid callback\"\r\n        ); _;\r\n    }\r\n\r\n    modifier checkQueryReward(uint256 _msgValue, uint256 _baseFee) virtual {\r\n        _require(\r\n            _msgValue >= _baseFee, \r\n            \"insufficient reward\"\r\n        ); \r\n        _require(\r\n            _msgValue <= _baseFee * 10,\r\n            \"too much reward\"\r\n        ); _;\r\n    }\r\n\r\n    modifier checkQuerySLA(Witnet.QuerySLA memory sla) virtual {\r\n        _require(\r\n            sla.isValid(), \r\n            \"invalid SLA\"\r\n        ); _;\r\n    }\r\n\r\n    /// Asserts the given query is currently in the given status.\r\n    modifier inStatus(uint256 _queryId, Witnet.QueryStatus _status) {\r\n        if (getQueryStatus(_queryId) != _status) {\r\n            _revert(WitOracleDataLib.notInStatusRevertMessage(_status));\r\n        } else {\r\n            _;\r\n        }\r\n    }\r\n\r\n    /// Asserts the caller actually posted the referred query.\r\n    modifier onlyRequester(uint256 _queryId) {\r\n        _require(\r\n            msg.sender == WitOracleDataLib.seekQueryRequest(_queryId).requester, \r\n            \"not the requester\"\r\n        ); _;\r\n    }\r\n\r\n    struct EvmImmutables {\r\n        uint32 reportResultGasBase;\r\n        uint32 reportResultWithCallbackGasBase;\r\n        uint32 reportResultWithCallbackRevertGasBase;\r\n        uint32 sstoreFromZeroGas;\r\n    }\r\n    \r\n    constructor(\r\n            EvmImmutables memory _immutables,\r\n            WitOracleRadonRegistry _registry\r\n        )\r\n    {\r\n        _require(\r\n            address(_registry).code.length > 0,\r\n            \"inexistent registry\"\r\n        );\r\n        _require(\r\n            _registry.specs() == type(IWitOracleRadonRegistry).interfaceId, \r\n            \"uncompliant registry\"\r\n        );\r\n        registry = _registry;\r\n\r\n        __reportResultGasBase = _immutables.reportResultGasBase;\r\n        __reportResultWithCallbackGasBase = _immutables.reportResultWithCallbackGasBase;\r\n        __reportResultWithCallbackRevertGasBase = _immutables.reportResultWithCallbackRevertGasBase;\r\n        __sstoreFromZeroGas = _immutables.sstoreFromZeroGas;\r\n    }\r\n\r\n    function getQueryStatus(uint256) virtual public view returns (Witnet.QueryStatus);\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- Payable ----------------------------------------------------------------------------------------------------\r\n\r\n    /// Gets current transaction price.\r\n    function _getGasPrice() internal view virtual override returns (uint256) {\r\n        return tx.gasprice;\r\n    }\r\n\r\n    /// Gets message actual sender.\r\n    function _getMsgSender() internal view virtual override returns (address) {\r\n        return msg.sender;\r\n    }\r\n    \r\n    /// Gets current payment value.\r\n    function _getMsgValue() internal view virtual override returns (uint256) {\r\n        return msg.value;\r\n    }\r\n\r\n    /// Transfers ETHs to given address.\r\n    /// @param _to Recipient address.\r\n    /// @param _amount Amount of ETHs to transfer.\r\n    function __safeTransferTo(address payable _to, uint256 _amount) virtual override internal {\r\n        payable(_to).transfer(_amount);\r\n    }\r\n    \r\n    \r\n    // ================================================================================================================\r\n    // --- IWitOracle (partial) ---------------------------------------------------------------------------------------\r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request.\r\n    /// @param _evmGasPrice Expected gas price to pay upon posting the data request.\r\n    function estimateBaseFee(uint256 _evmGasPrice)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return _evmGasPrice * (\r\n            __reportResultGasBase \r\n                + 4 * __sstoreFromZeroGas\r\n        );\r\n    }\r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request with a callback.\r\n    /// @param _evmGasPrice Expected gas price to pay upon posting the data request.\r\n    /// @param _evmCallbackGasLimit Maximum gas to be spent when reporting the data request result.\r\n    function estimateBaseFeeWithCallback(uint256 _evmGasPrice, uint24 _evmCallbackGasLimit)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        uint _reportResultWithCallbackGasThreshold = (\r\n            __reportResultWithCallbackRevertGasBase\r\n                + 3 * __sstoreFromZeroGas\r\n        );\r\n        if (\r\n            _evmCallbackGasLimit < _reportResultWithCallbackGasThreshold\r\n                || __reportResultWithCallbackGasBase + _evmCallbackGasLimit < _reportResultWithCallbackGasThreshold\r\n        ) {\r\n            return (\r\n                _evmGasPrice\r\n                    * _reportResultWithCallbackGasThreshold\r\n            );\r\n        } else {\r\n            return (\r\n                _evmGasPrice \r\n                    * (\r\n                        __reportResultWithCallbackGasBase\r\n                            + _evmCallbackGasLimit\r\n                    )\r\n            );\r\n        }\r\n    }\r\n\r\n    /// @notice Estimate the extra reward (i.e. over the base fee) to be paid when posting a new\r\n    /// @notice data query in order to avoid getting provable \"too low incentives\" results from\r\n    /// @notice the Wit/Oracle blockchain. \r\n    /// @dev The extra fee gets calculated in proportion to:\r\n    /// @param _evmGasPrice Tentative EVM gas price at the moment the query result is ready.\r\n    /// @param _evmWitPrice Tentative nanoWit price in Wei at the moment the query is solved on the Wit/Oracle blockchain.\r\n    /// @param _querySLA The query SLA data security parameters as required for the Wit/Oracle blockchain. \r\n    function estimateExtraFee(\r\n            uint256 _evmGasPrice, \r\n            uint256 _evmWitPrice, \r\n            Witnet.QuerySLA memory _querySLA\r\n        )\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return (\r\n            _evmWitPrice * _querySLA.witUnitaryReward\r\n                + (_querySLA.witResultMaxSize > 32\r\n                    ? _evmGasPrice * __sstoreFromZeroGas * ((_querySLA.witResultMaxSize - 32) / 32)\r\n                    : 0\r\n                )\r\n        );\r\n    }\r\n\r\n    /// Gets the whole Query data contents, if any, no matter its current status.\r\n    function getQuery(Witnet.QueryId _queryId)\r\n      public view\r\n      virtual override\r\n      returns (Witnet.Query memory)\r\n    {\r\n        return WitOracleDataLib.getQuery(_queryId);\r\n    }\r\n\r\n    /// @notice Gets the current EVM reward the report can claim, if not done yet.\r\n    function getQueryEvmReward(uint256 _queryId) \r\n        external view \r\n        virtual override\r\n        returns (Witnet.QueryEvmReward)\r\n    {\r\n        return __storage().queries[_queryId].reward;\r\n    }\r\n\r\n    /// @notice Retrieves the RAD hash and SLA parameters of the given query.\r\n    /// @param _queryId The unique query identifier.\r\n    function getQueryRequest(Witnet.QueryId _queryId)\r\n        external view override\r\n        returns (Witnet.QueryRequest memory)\r\n    {\r\n        return WitOracleDataLib.getQueryRequest(_queryId);\r\n    }\r\n\r\n    /// Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \r\n    /// @dev Fails if the `_queryId` is not in 'Reported' status.\r\n    /// @param _queryId The unique query identifier\r\n    function getQueryResponse(Witnet.QueryId _queryId)\r\n        virtual override public view\r\n        returns (Witnet.QueryResponse memory)\r\n    {\r\n        return WitOracleDataLib.getQueryResponse(_queryId);\r\n    }\r\n\r\n    function getQueryResult(uint256 _queryId)\r\n        virtual override public view \r\n        returns (Witnet.DataResult memory)\r\n    {\r\n        return WitOracleDataLib.getQueryResult(_queryId);\r\n    }\r\n\r\n    function getQueryResultStatus(uint256 _queryId)\r\n        virtual override public view \r\n        returns (Witnet.ResultStatus)\r\n    {\r\n        return WitOracleDataLib.getQueryResultStatus(_queryId);\r\n    }\r\n\r\n    function getQueryResultStatusDescription(uint256 _queryId)\r\n        virtual override public view\r\n        returns (string memory)\r\n    {\r\n        return WitOracleResultStatusLib.toString(\r\n            abi.encode(WitOracleDataLib.getQueryResult(_queryId))\r\n        );\r\n    }\r\n\r\n    /// @notice Gets query's result back tracing trails\r\n    function getQueryResultTrails(uint256 _queryId) \r\n        virtual override\r\n        external view returns (\r\n            bytes32 queryUUID,\r\n            Witnet.TransactionHash resultDrTxHash,\r\n            Witnet.Timestamp resultTimestamp,\r\n            uint256 resultFinalityBlock\r\n        )\r\n    {\r\n        WitOracleDataLib.Query storage __query = WitOracleDataLib.seekQuery(_queryId);\r\n        queryUUID = bytes32(Witnet.QueryUUID.unwrap(__query.uuid));\r\n        resultDrTxHash = Witnet.TransactionHash.wrap(__query.response.resultDrTxHash);\r\n        resultTimestamp = Witnet.Timestamp.wrap(__query.response.resultTimestamp);\r\n        resultFinalityBlock = Witnet.BlockNumber.unwrap(__query.checkpoint);\r\n    }\r\n\r\n    function getQueryStatusString(uint256 _queryId)\r\n        virtual override external view \r\n        returns (string memory)\r\n    {\r\n        return WitOracleDataLib.toString(\r\n            getQueryStatus(_queryId)\r\n        );\r\n    }\r\n\r\n    function getQueryStatusBatch(uint256[] calldata _queryIds)\r\n        virtual override\r\n        public view\r\n        returns (Witnet.QueryStatus[] memory _status)\r\n    {\r\n        _status = new Witnet.QueryStatus[](_queryIds.length);\r\n        for (uint _ix = 0; _ix < _queryIds.length; _ix ++) {\r\n            _status[_ix] = getQueryStatus(_queryIds[_ix]);\r\n        }\r\n    }\r\n\r\n    /// @notice Returns next query id to be generated by the Witnet Request Board.\r\n    function getNextQueryId()\r\n        external view\r\n        override\r\n        returns (Witnet.QueryId)\r\n    {\r\n        return Witnet.QueryId.wrap(__storage().nonce + 1);\r\n    }\r\n\r\n    function queryData(\r\n            Witnet.RadonHash _queryRAD, \r\n            Witnet.QuerySLA memory _querySLA\r\n        )\r\n        virtual override\r\n        public payable\r\n        checkQueryReward(\r\n            _getMsgValue(),\r\n            estimateBaseFee(_getGasPrice())\r\n        )\r\n        checkQuerySLA(_querySLA)\r\n        returns (uint256 _queryId)\r\n    {\r\n        _queryId = __queryData(\r\n            _getMsgSender(), 0,\r\n            uint72(_getMsgValue()),\r\n            _queryRAD,\r\n            _querySLA\r\n        );\r\n        // Let Web3 observers know that a new request has been posted\r\n        emit WitOracleQuery(\r\n            _getMsgSender(),\r\n            _getGasPrice(),\r\n            _getMsgValue(),\r\n            Witnet.QueryId.wrap(uint64(_queryId)),\r\n            _queryRAD, \r\n            _querySLA\r\n        );\r\n    }\r\n   \r\n    function queryDataWithCallback(\r\n            Witnet.RadonHash _queryRAD, \r\n            Witnet.QuerySLA memory _querySLA,\r\n            Witnet.QueryCallback memory _queryCallback\r\n        )\r\n        virtual override\r\n        public payable\r\n        checkQueryReward(\r\n            _getMsgValue(),\r\n            estimateBaseFeeWithCallback(\r\n                _getGasPrice(),  \r\n                _queryCallback.gasLimit\r\n            )\r\n        )\r\n        checkQuerySLA(_querySLA)\r\n        checkQueryCallback(_queryCallback)\r\n        returns (uint256 _queryId)\r\n    {\r\n        _queryId = __queryData(\r\n            _queryCallback.consumer,\r\n            _queryCallback.gasLimit,\r\n            uint72(_getMsgValue()),\r\n            _queryRAD,\r\n            _querySLA\r\n        );\r\n        emit WitOracleQuery(\r\n            _getMsgSender(),\r\n            _getGasPrice(),\r\n            _getMsgValue(),\r\n            Witnet.QueryId.wrap(uint64(_queryId)), \r\n            _queryRAD, \r\n            _querySLA\r\n        );\r\n    } \r\n\r\n    /// Increments the reward of a previously posted request by adding the transaction value to it.\r\n    /// @dev Fails if the `_queryId` is not in 'Posted' status.\r\n    /// @param _queryId The unique query identifier.\r\n    function upgradeQueryEvmReward(uint256 _queryId)\r\n        external payable\r\n        virtual override      \r\n        inStatus(_queryId, Witnet.QueryStatus.Posted)\r\n    {\r\n        WitOracleDataLib.Query storage __query = WitOracleDataLib.seekQuery(_queryId);\r\n        uint256 _newReward = (\r\n            Witnet.QueryEvmReward.unwrap(__query.reward)\r\n                + _getMsgValue()\r\n        );\r\n        __query.reward = Witnet.QueryEvmReward.wrap(uint72(_newReward));\r\n        emit WitOracleQueryUpgrade(\r\n            Witnet.QueryId.wrap(uint64(_queryId)),\r\n            _getMsgSender(),\r\n            _getGasPrice(),\r\n            _newReward\r\n        );\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Internal functions -----------------------------------------------------------------------------------------\r\n\r\n    function __queryData(\r\n            address _requester,\r\n            uint24  _callbackGas,\r\n            uint72  _evmReward,\r\n            Witnet.RadonHash _radonHash,\r\n            Witnet.QuerySLA memory _querySLA\r\n        )\r\n        virtual internal\r\n        returns (uint256 _queryId)\r\n    {\r\n        _queryId = ++ __storage().nonce;\r\n        WitOracleDataLib.Query storage __query = WitOracleDataLib.seekQuery(_queryId);\r\n        __query.checkpoint = Witnet.BlockNumber.wrap(uint64(block.number));\r\n        __query.uuid = Witnet.hashify(\r\n            Witnet.QueryId.wrap(uint64(_queryId)), \r\n            _radonHash, \r\n            _querySLA.hashify()\r\n        );\r\n        __query.reward = Witnet.QueryEvmReward.wrap(_evmReward);\r\n        __query.request.requester = _requester;\r\n        __query.request.radonHash = Witnet.RadonHash.unwrap(_radonHash);\r\n        if (_callbackGas > 0) __query.request.callbackGas = _callbackGas;\r\n        __query.slaParams = _querySLA;\r\n    }\r\n\r\n    function _revertUnhandledException() virtual internal view {\r\n        _revert(_revertUnhandledExceptionReason());\r\n    }\r\n\r\n    function _revertUnhandledExceptionReason() virtual internal pure returns (string memory) {\r\n        return string(abi.encodePacked(\r\n            type(WitOracleDataLib).name,\r\n            \": unhandled assertion\"\r\n        ));\r\n    }\r\n\r\n    /// Returns storage pointer to contents of 'WitOracleDataLib.Storage' struct.\r\n    function __storage() virtual internal pure returns (WitOracleDataLib.Storage storage _ptr) {\r\n        return WitOracleDataLib.data();\r\n    }    \r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\core\\base\\WitOracleBaseQueriable.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/base/WitOracleBaseQueriable.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "IERC20": [
        493
      ],
      "IWitAppliance": [
        26514
      ],
      "IWitOracle": [
        26581
      ],
      "IWitOracleAppliance": [
        26593
      ],
      "IWitOracleLegacy": [
        28786
      ],
      "IWitOracleQueriable": [
        26795
      ],
      "IWitOracleQueriableConsumer": [
        26815
      ],
      "IWitOracleQueriableEvents": [
        26892
      ],
      "IWitOracleQueriableExperimental": [
        26964
      ],
      "IWitOracleQueriableTrustableReporter": [
        27056
      ],
      "IWitOracleRadonRegistry": [
        27394
      ],
      "IWitOracleRadonRegistryEvents": [
        27414
      ],
      "IWitOracleRequest": [
        28922
      ],
      "IWitOracleRequestTemplate": [
        29115
      ],
      "IWitOracleTrustableAdmin": [
        27628
      ],
      "Payable": [
        45766
      ],
      "Secp256k1": [
        32535
      ],
      "WitOracle": [
        678
      ],
      "WitOracleBasePushOnly": [
        9455
      ],
      "WitOracleBaseQueriable": [
        11059
      ],
      "WitOracleDataLib": [
        20110
      ],
      "WitOraclePushOnly": [
        701
      ],
      "WitOracleRadonRegistry": [
        726
      ],
      "WitOracleResultStatusLib": [
        37119
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 11060,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10047,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:31"
      },
      {
        "absolutePath": "project:/contracts/core/base/WitOracleBasePushOnly.sol",
        "file": "./WitOracleBasePushOnly.sol",
        "id": 10048,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11060,
        "sourceUnit": 9456,
        "src": "70:37:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/WitOracle.sol",
        "file": "../../WitOracle.sol",
        "id": 10049,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11060,
        "sourceUnit": 679,
        "src": "111:29:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitOracleDataLib.sol",
        "file": "../../data/WitOracleDataLib.sol",
        "id": 10050,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11060,
        "sourceUnit": 20111,
        "src": "142:41:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracleQueriableConsumer.sol",
        "file": "../../interfaces/IWitOracleQueriableConsumer.sol",
        "id": 10051,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11060,
        "sourceUnit": 26816,
        "src": "185:58:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/libs/WitOracleResultStatusLib.sol",
        "file": "../../libs/WitOracleResultStatusLib.sol",
        "id": 10052,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11060,
        "sourceUnit": 37120,
        "src": "245:49:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Payable.sol",
        "file": "../../patterns/Payable.sol",
        "id": 10053,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 11060,
        "sourceUnit": 45767,
        "src": "296:36:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 10055,
              "name": "Payable",
              "nameLocations": [
                "483:7:31"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45766,
              "src": "483:7:31"
            },
            "id": 10056,
            "nodeType": "InheritanceSpecifier",
            "src": "483:7:31"
          },
          {
            "baseName": {
              "id": 10057,
              "name": "WitOracle",
              "nameLocations": [
                "501:9:31"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 678,
              "src": "501:9:31"
            },
            "id": 10058,
            "nodeType": "InheritanceSpecifier",
            "src": "501:9:31"
          }
        ],
        "canonicalName": "WitOracleBaseQueriable",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 10054,
          "nodeType": "StructuredDocumentation",
          "src": "336:88:31",
          "text": "@title Queriable WitOracle base implementation.\n @author The Witnet Foundation"
        },
        "fullyImplemented": false,
        "id": 11059,
        "linearizedBaseContracts": [
          11059,
          678,
          26892,
          26795,
          26581,
          26514,
          45766
        ],
        "name": "WitOracleBaseQueriable",
        "nameLocation": "442:22:31",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 10062,
            "libraryName": {
              "id": 10059,
              "name": "Witnet",
              "nameLocations": [
                "525:6:31"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "525:6:31"
            },
            "nodeType": "UsingForDirective",
            "src": "519:33:31",
            "typeName": {
              "id": 10061,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 10060,
                "name": "Witnet.QuerySLA",
                "nameLocations": [
                  "536:6:31",
                  "543:8:31"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37373,
                "src": "536:15:31"
              },
              "referencedDeclaration": 37373,
              "src": "536:15:31",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                "typeString": "struct Witnet.QuerySLA"
              }
            }
          },
          {
            "global": false,
            "id": 10066,
            "libraryName": {
              "id": 10063,
              "name": "WitOracleDataLib",
              "nameLocations": [
                "564:16:31"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 20110,
              "src": "564:16:31"
            },
            "nodeType": "UsingForDirective",
            "src": "558:52:31",
            "typeName": {
              "id": 10065,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 10064,
                "name": "WitOracleDataLib.Storage",
                "nameLocations": [
                  "585:16:31",
                  "602:7:31"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 18055,
                "src": "585:24:31"
              },
              "referencedDeclaration": 18055,
              "src": "585:24:31",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                "typeString": "struct WitOracleDataLib.Storage"
              }
            }
          },
          {
            "baseFunctions": [
              26549
            ],
            "body": {
              "id": 10080,
              "nodeType": "Block",
              "src": "683:55:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10076,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "724:4:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitOracleBaseQueriable_$11059",
                              "typeString": "contract WitOracleBaseQueriable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_WitOracleBaseQueriable_$11059",
                              "typeString": "contract WitOracleBaseQueriable"
                            }
                          ],
                          "id": 10075,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "716:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 10074,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "716:7:31",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 10077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "716:13:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 10072,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "701:6:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 10073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "708:7:31",
                      "memberName": "channel",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37227,
                      "src": "701:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bytes4_$",
                        "typeString": "function (address) view returns (bytes4)"
                      }
                    },
                    "id": 10078,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "701:29:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 10071,
                  "id": 10079,
                  "nodeType": "Return",
                  "src": "694:36:31"
                }
              ]
            },
            "functionSelector": "7bbdb96e",
            "id": 10081,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "channel",
            "nameLocation": "627:7:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10068,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "645:8:31"
            },
            "parameters": {
              "id": 10067,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "634:2:31"
            },
            "returnParameters": {
              "id": 10071,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10070,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10081,
                  "src": "675:6:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 10069,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "675:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "674:8:31"
            },
            "scope": 11059,
            "src": "618:120:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26580
            ],
            "constant": false,
            "functionSelector": "7b103999",
            "id": 10085,
            "mutability": "immutable",
            "name": "registry",
            "nameLocation": "796:8:31",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 10084,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "787:8:31"
            },
            "scope": 11059,
            "src": "746:58:31",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
              "typeString": "contract IWitOracleRadonRegistry"
            },
            "typeName": {
              "id": 10083,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 10082,
                "name": "IWitOracleRadonRegistry",
                "nameLocations": [
                  "746:23:31"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 27394,
                "src": "746:23:31"
              },
              "referencedDeclaration": 27394,
              "src": "746:23:31",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                "typeString": "contract IWitOracleRadonRegistry"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10087,
            "mutability": "immutable",
            "name": "__reportResultGasBase",
            "nameLocation": "840:21:31",
            "nodeType": "VariableDeclaration",
            "scope": 11059,
            "src": "813:48:31",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10086,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "813:7:31",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 10089,
            "mutability": "immutable",
            "name": "__reportResultWithCallbackGasBase",
            "nameLocation": "895:33:31",
            "nodeType": "VariableDeclaration",
            "scope": 11059,
            "src": "868:60:31",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10088,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "868:7:31",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 10091,
            "mutability": "immutable",
            "name": "__reportResultWithCallbackRevertGasBase",
            "nameLocation": "962:39:31",
            "nodeType": "VariableDeclaration",
            "scope": 11059,
            "src": "935:66:31",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10090,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "935:7:31",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 10093,
            "mutability": "immutable",
            "name": "__sstoreFromZeroGas",
            "nameLocation": "1035:19:31",
            "nodeType": "VariableDeclaration",
            "scope": 11059,
            "src": "1008:46:31",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10092,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1008:7:31",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10128,
              "nodeType": "Block",
              "src": "1137:270:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 10123,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 10118,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10107,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "expression": {
                                  "arguments": [
                                    {
                                      "expression": {
                                        "id": 10101,
                                        "name": "callback",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 10096,
                                        "src": "1179:8:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                                          "typeString": "struct Witnet.QueryCallback memory"
                                        }
                                      },
                                      "id": 10102,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "1188:8:31",
                                      "memberName": "consumer",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 37337,
                                      "src": "1179:17:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 10100,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1171:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": {
                                      "id": 10099,
                                      "name": "address",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1171:7:31",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 10103,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1171:26:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 10104,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "1198:4:31",
                                "memberName": "code",
                                "nodeType": "MemberAccess",
                                "src": "1171:31:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 10105,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1203:6:31",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "1171:38:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 10106,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1212:1:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "1171:42:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 10115,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967268,
                                    "src": "1304:4:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_WitOracleBaseQueriable_$11059",
                                      "typeString": "contract WitOracleBaseQueriable"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_WitOracleBaseQueriable_$11059",
                                      "typeString": "contract WitOracleBaseQueriable"
                                    }
                                  ],
                                  "id": 10114,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1296:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 10113,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1296:7:31",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 10116,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1296:13:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "expression": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 10109,
                                      "name": "callback",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10096,
                                      "src": "1262:8:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                                        "typeString": "struct Witnet.QueryCallback memory"
                                      }
                                    },
                                    "id": 10110,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "1271:8:31",
                                    "memberName": "consumer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 37337,
                                    "src": "1262:17:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 10108,
                                  "name": "IWitOracleQueriableConsumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26815,
                                  "src": "1234:27:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriableConsumer_$26815_$",
                                    "typeString": "type(contract IWitOracleQueriableConsumer)"
                                  }
                                },
                                "id": 10111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1234:46:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitOracleQueriableConsumer_$26815",
                                  "typeString": "contract IWitOracleQueriableConsumer"
                                }
                              },
                              "id": 10112,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1281:14:31",
                              "memberName": "reportableFrom",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26814,
                              "src": "1234:61:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                "typeString": "function (address) view external returns (bool)"
                              }
                            },
                            "id": 10117,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1234:76:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1171:139:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          },
                          "id": 10122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 10119,
                              "name": "callback",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10096,
                              "src": "1331:8:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                                "typeString": "struct Witnet.QueryCallback memory"
                              }
                            },
                            "id": 10120,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1340:8:31",
                            "memberName": "gasLimit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37339,
                            "src": "1331:17:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 10121,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1351:1:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1331:21:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1171:181:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c69642063616c6c6261636b",
                        "id": 10124,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1367:18:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b775081479cbf7bc3f7616f491c695539e40cc26aff1f7443e99f67ffe36385e",
                          "typeString": "literal_string \"invalid callback\""
                        },
                        "value": "invalid callback"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b775081479cbf7bc3f7616f491c695539e40cc26aff1f7443e99f67ffe36385e",
                          "typeString": "literal_string \"invalid callback\""
                        }
                      ],
                      "id": 10098,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1148:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1148:248:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10126,
                  "nodeType": "ExpressionStatement",
                  "src": "1148:248:31"
                },
                {
                  "id": 10127,
                  "nodeType": "PlaceholderStatement",
                  "src": "1398:1:31"
                }
              ]
            },
            "id": 10129,
            "name": "checkQueryCallback",
            "nameLocation": "1072:18:31",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10096,
                  "mutability": "mutable",
                  "name": "callback",
                  "nameLocation": "1119:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10129,
                  "src": "1091:36:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                    "typeString": "struct Witnet.QueryCallback"
                  },
                  "typeName": {
                    "id": 10095,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10094,
                      "name": "Witnet.QueryCallback",
                      "nameLocations": [
                        "1091:6:31",
                        "1098:13:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37340,
                      "src": "1091:20:31"
                    },
                    "referencedDeclaration": 37340,
                    "src": "1091:20:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryCallback_$37340_storage_ptr",
                      "typeString": "struct Witnet.QueryCallback"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1090:38:31"
            },
            "src": "1063:344:31",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10152,
              "nodeType": "Block",
              "src": "1486:218:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10136,
                          "name": "_msgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10131,
                          "src": "1520:9:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "id": 10137,
                          "name": "_baseFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10133,
                          "src": "1533:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1520:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e73756666696369656e7420726577617264",
                        "id": 10139,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1557:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_50ea50fd0f9978acc36345b4aa15377e6485f5718049830b4282f527b710d5d9",
                          "typeString": "literal_string \"insufficient reward\""
                        },
                        "value": "insufficient reward"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_50ea50fd0f9978acc36345b4aa15377e6485f5718049830b4282f527b710d5d9",
                          "typeString": "literal_string \"insufficient reward\""
                        }
                      ],
                      "id": 10135,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1497:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1497:92:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10141,
                  "nodeType": "ExpressionStatement",
                  "src": "1497:92:31"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10147,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10143,
                          "name": "_msgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10131,
                          "src": "1624:9:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10144,
                            "name": "_baseFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10133,
                            "src": "1637:8:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3130",
                            "id": 10145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1648:2:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_10_by_1",
                              "typeString": "int_const 10"
                            },
                            "value": "10"
                          },
                          "src": "1637:13:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1624:26:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "746f6f206d75636820726577617264",
                        "id": 10148,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1665:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1e72323f1f3aed87187c51f7663ef391bcf1d8bdc45294b783e13ae4d87c075e",
                          "typeString": "literal_string \"too much reward\""
                        },
                        "value": "too much reward"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1e72323f1f3aed87187c51f7663ef391bcf1d8bdc45294b783e13ae4d87c075e",
                          "typeString": "literal_string \"too much reward\""
                        }
                      ],
                      "id": 10142,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1601:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1601:92:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10150,
                  "nodeType": "ExpressionStatement",
                  "src": "1601:92:31"
                },
                {
                  "id": 10151,
                  "nodeType": "PlaceholderStatement",
                  "src": "1695:1:31"
                }
              ]
            },
            "id": 10153,
            "name": "checkQueryReward",
            "nameLocation": "1424:16:31",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10131,
                  "mutability": "mutable",
                  "name": "_msgValue",
                  "nameLocation": "1449:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10153,
                  "src": "1441:17:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10130,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1441:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10133,
                  "mutability": "mutable",
                  "name": "_baseFee",
                  "nameLocation": "1468:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10153,
                  "src": "1460:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10132,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1460:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1440:37:31"
            },
            "src": "1415:289:31",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10166,
              "nodeType": "Block",
              "src": "1771:98:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 10159,
                            "name": "sla",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10156,
                            "src": "1805:3:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                              "typeString": "struct Witnet.QuerySLA memory"
                            }
                          },
                          "id": 10160,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1809:7:31",
                          "memberName": "isValid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 38791,
                          "src": "1805:11:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_QuerySLA_$37373_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_QuerySLA_$37373_memory_ptr_$",
                            "typeString": "function (struct Witnet.QuerySLA memory) pure returns (bool)"
                          }
                        },
                        "id": 10161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1805:13:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420534c41",
                        "id": 10162,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1834:13:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_649dbe9d60b1f0c53e04c2d59e7afec11199b4ea79256e4be931f59e1bb314a7",
                          "typeString": "literal_string \"invalid SLA\""
                        },
                        "value": "invalid SLA"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_649dbe9d60b1f0c53e04c2d59e7afec11199b4ea79256e4be931f59e1bb314a7",
                          "typeString": "literal_string \"invalid SLA\""
                        }
                      ],
                      "id": 10158,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1782:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10163,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1782:76:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10164,
                  "nodeType": "ExpressionStatement",
                  "src": "1782:76:31"
                },
                {
                  "id": 10165,
                  "nodeType": "PlaceholderStatement",
                  "src": "1860:1:31"
                }
              ]
            },
            "id": 10167,
            "name": "checkQuerySLA",
            "nameLocation": "1721:13:31",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10157,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10156,
                  "mutability": "mutable",
                  "name": "sla",
                  "nameLocation": "1758:3:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10167,
                  "src": "1735:26:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 10155,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10154,
                      "name": "Witnet.QuerySLA",
                      "nameLocations": [
                        "1735:6:31",
                        "1742:8:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "1735:15:31"
                    },
                    "referencedDeclaration": 37373,
                    "src": "1735:15:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1734:28:31"
            },
            "src": "1712:157:31",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10191,
              "nodeType": "Block",
              "src": "2008:179:31",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_QueryStatus_$37335",
                      "typeString": "enum Witnet.QueryStatus"
                    },
                    "id": 10179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 10176,
                          "name": "_queryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10170,
                          "src": "2038:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 10175,
                        "name": "getQueryStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10286,
                        "src": "2023:14:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$37335_$",
                          "typeString": "function (uint256) view returns (enum Witnet.QueryStatus)"
                        }
                      },
                      "id": 10177,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2023:24:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_QueryStatus_$37335",
                        "typeString": "enum Witnet.QueryStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "id": 10178,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10173,
                      "src": "2051:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_QueryStatus_$37335",
                        "typeString": "enum Witnet.QueryStatus"
                      }
                    },
                    "src": "2023:35:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10189,
                    "nodeType": "Block",
                    "src": "2152:28:31",
                    "statements": [
                      {
                        "id": 10188,
                        "nodeType": "PlaceholderStatement",
                        "src": "2167:1:31"
                      }
                    ]
                  },
                  "id": 10190,
                  "nodeType": "IfStatement",
                  "src": "2019:161:31",
                  "trueBody": {
                    "id": 10187,
                    "nodeType": "Block",
                    "src": "2060:86:31",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 10183,
                                  "name": "_status",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10173,
                                  "src": "2125:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_QueryStatus_$37335",
                                    "typeString": "enum Witnet.QueryStatus"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_QueryStatus_$37335",
                                    "typeString": "enum Witnet.QueryStatus"
                                  }
                                ],
                                "expression": {
                                  "id": 10181,
                                  "name": "WitOracleDataLib",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20110,
                                  "src": "2083:16:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                    "typeString": "type(library WitOracleDataLib)"
                                  }
                                },
                                "id": 10182,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "2100:24:31",
                                "memberName": "notInStatusRevertMessage",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 20042,
                                "src": "2083:41:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_delegatecall_pure$_t_enum$_QueryStatus_$37335_$returns$_t_string_memory_ptr_$",
                                  "typeString": "function (enum Witnet.QueryStatus) pure returns (string memory)"
                                }
                              },
                              "id": 10184,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2083:50:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 10180,
                            "name": "_revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26513,
                            "src": "2075:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) view"
                            }
                          },
                          "id": 10185,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2075:59:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10186,
                        "nodeType": "ExpressionStatement",
                        "src": "2075:59:31"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 10168,
              "nodeType": "StructuredDocumentation",
              "src": "1877:61:31",
              "text": "Asserts the given query is currently in the given status."
            },
            "id": 10192,
            "name": "inStatus",
            "nameLocation": "1953:8:31",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10174,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10170,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "1970:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10192,
                  "src": "1962:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10169,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10173,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "1999:7:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10192,
                  "src": "1980:26:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_QueryStatus_$37335",
                    "typeString": "enum Witnet.QueryStatus"
                  },
                  "typeName": {
                    "id": 10172,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10171,
                      "name": "Witnet.QueryStatus",
                      "nameLocations": [
                        "1980:6:31",
                        "1987:11:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37335,
                      "src": "1980:18:31"
                    },
                    "referencedDeclaration": 37335,
                    "src": "1980:18:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$37335",
                      "typeString": "enum Witnet.QueryStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1961:46:31"
            },
            "src": "1944:243:31",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10210,
              "nodeType": "Block",
              "src": "2300:158:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 10205,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 10198,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967281,
                            "src": "2334:3:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10199,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2338:6:31",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "2334:10:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 10202,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10195,
                                "src": "2382:8:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 10200,
                                "name": "WitOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20110,
                                "src": "2348:16:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                  "typeString": "type(library WitOracleDataLib)"
                                }
                              },
                              "id": 10201,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2365:16:31",
                              "memberName": "seekQueryRequest",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 18198,
                              "src": "2348:33:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_QueryRequest_$18087_storage_ptr_$",
                                "typeString": "function (uint256) view returns (struct WitOracleDataLib.QueryRequest storage pointer)"
                              }
                            },
                            "id": 10203,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2348:43:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QueryRequest_$18087_storage_ptr",
                              "typeString": "struct WitOracleDataLib.QueryRequest storage pointer"
                            }
                          },
                          "id": 10204,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2392:9:31",
                          "memberName": "requester",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18076,
                          "src": "2348:53:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2334:67:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "6e6f742074686520726571756573746572",
                        "id": 10206,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2417:19:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_54a8984d6b3851bf52f7fdb98af230bb86396191e1aeefafdf00e9138213c4ef",
                          "typeString": "literal_string \"not the requester\""
                        },
                        "value": "not the requester"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_54a8984d6b3851bf52f7fdb98af230bb86396191e1aeefafdf00e9138213c4ef",
                          "typeString": "literal_string \"not the requester\""
                        }
                      ],
                      "id": 10197,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "2311:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2311:136:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10208,
                  "nodeType": "ExpressionStatement",
                  "src": "2311:136:31"
                },
                {
                  "id": 10209,
                  "nodeType": "PlaceholderStatement",
                  "src": "2449:1:31"
                }
              ]
            },
            "documentation": {
              "id": 10193,
              "nodeType": "StructuredDocumentation",
              "src": "2195:58:31",
              "text": "Asserts the caller actually posted the referred query."
            },
            "id": 10211,
            "name": "onlyRequester",
            "nameLocation": "2268:13:31",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10195,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "2290:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10211,
                  "src": "2282:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10194,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2282:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2281:18:31"
            },
            "src": "2259:199:31",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "canonicalName": "WitOracleBaseQueriable.EvmImmutables",
            "id": 10220,
            "members": [
              {
                "constant": false,
                "id": 10213,
                "mutability": "mutable",
                "name": "reportResultGasBase",
                "nameLocation": "2505:19:31",
                "nodeType": "VariableDeclaration",
                "scope": 10220,
                "src": "2498:26:31",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 10212,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2498:6:31",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 10215,
                "mutability": "mutable",
                "name": "reportResultWithCallbackGasBase",
                "nameLocation": "2542:31:31",
                "nodeType": "VariableDeclaration",
                "scope": 10220,
                "src": "2535:38:31",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 10214,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2535:6:31",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 10217,
                "mutability": "mutable",
                "name": "reportResultWithCallbackRevertGasBase",
                "nameLocation": "2591:37:31",
                "nodeType": "VariableDeclaration",
                "scope": 10220,
                "src": "2584:44:31",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 10216,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2584:6:31",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 10219,
                "mutability": "mutable",
                "name": "sstoreFromZeroGas",
                "nameLocation": "2646:17:31",
                "nodeType": "VariableDeclaration",
                "scope": 10220,
                "src": "2639:24:31",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 10218,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2639:6:31",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "EvmImmutables",
            "nameLocation": "2473:13:31",
            "nodeType": "StructDefinition",
            "scope": 11059,
            "src": "2466:205:31",
            "visibility": "public"
          },
          {
            "body": {
              "id": 10277,
              "nodeType": "Block",
              "src": "2805:621:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 10232,
                                  "name": "_registry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10226,
                                  "src": "2847:9:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_WitOracleRadonRegistry_$726",
                                    "typeString": "contract WitOracleRadonRegistry"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_WitOracleRadonRegistry_$726",
                                    "typeString": "contract WitOracleRadonRegistry"
                                  }
                                ],
                                "id": 10231,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2839:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 10230,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2839:7:31",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 10233,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2839:18:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 10234,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2858:4:31",
                            "memberName": "code",
                            "nodeType": "MemberAccess",
                            "src": "2839:23:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 10235,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2863:6:31",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "2839:30:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 10236,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2872:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2839:34:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e6578697374656e74207265676973747279",
                        "id": 10238,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2888:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c6c7b75da7882564b10de5d4e992e2958eec802dfd849b768e09d3bc94a1fb6b",
                          "typeString": "literal_string \"inexistent registry\""
                        },
                        "value": "inexistent registry"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c6c7b75da7882564b10de5d4e992e2958eec802dfd849b768e09d3bc94a1fb6b",
                          "typeString": "literal_string \"inexistent registry\""
                        }
                      ],
                      "id": 10229,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "2816:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10239,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2816:104:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10240,
                  "nodeType": "ExpressionStatement",
                  "src": "2816:104:31"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 10249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 10242,
                              "name": "_registry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10226,
                              "src": "2954:9:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitOracleRadonRegistry_$726",
                                "typeString": "contract WitOracleRadonRegistry"
                              }
                            },
                            "id": 10243,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2964:5:31",
                            "memberName": "specs",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 725,
                            "src": "2954:15:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_pure$__$returns$_t_bytes4_$",
                              "typeString": "function () pure external returns (bytes4)"
                            }
                          },
                          "id": 10244,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2954:17:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 10246,
                                "name": "IWitOracleRadonRegistry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27394,
                                "src": "2980:23:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                                  "typeString": "type(contract IWitOracleRadonRegistry)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                                  "typeString": "type(contract IWitOracleRadonRegistry)"
                                }
                              ],
                              "id": 10245,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967269,
                              "src": "2975:4:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 10247,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2975:29:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracleRadonRegistry_$27394",
                              "typeString": "type(contract IWitOracleRadonRegistry)"
                            }
                          },
                          "id": 10248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3005:11:31",
                          "memberName": "interfaceId",
                          "nodeType": "MemberAccess",
                          "src": "2975:41:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2954:62:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e636f6d706c69616e74207265676973747279",
                        "id": 10250,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3032:22:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3d510288d0eb72bd309b51bc624c0ef5d7fa0b0f130d45ae5e0c3e422418dad2",
                          "typeString": "literal_string \"uncompliant registry\""
                        },
                        "value": "uncompliant registry"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3d510288d0eb72bd309b51bc624c0ef5d7fa0b0f130d45ae5e0c3e422418dad2",
                          "typeString": "literal_string \"uncompliant registry\""
                        }
                      ],
                      "id": 10241,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "2931:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 10251,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2931:134:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10252,
                  "nodeType": "ExpressionStatement",
                  "src": "2931:134:31"
                },
                {
                  "expression": {
                    "id": 10255,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10253,
                      "name": "registry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10085,
                      "src": "3076:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                        "typeString": "contract IWitOracleRadonRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 10254,
                      "name": "_registry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10226,
                      "src": "3087:9:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WitOracleRadonRegistry_$726",
                        "typeString": "contract WitOracleRadonRegistry"
                      }
                    },
                    "src": "3076:20:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                      "typeString": "contract IWitOracleRadonRegistry"
                    }
                  },
                  "id": 10256,
                  "nodeType": "ExpressionStatement",
                  "src": "3076:20:31"
                },
                {
                  "expression": {
                    "id": 10260,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10257,
                      "name": "__reportResultGasBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10087,
                      "src": "3109:21:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10258,
                        "name": "_immutables",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10223,
                        "src": "3133:11:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EvmImmutables_$10220_memory_ptr",
                          "typeString": "struct WitOracleBaseQueriable.EvmImmutables memory"
                        }
                      },
                      "id": 10259,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3145:19:31",
                      "memberName": "reportResultGasBase",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10213,
                      "src": "3133:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "3109:55:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10261,
                  "nodeType": "ExpressionStatement",
                  "src": "3109:55:31"
                },
                {
                  "expression": {
                    "id": 10265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10262,
                      "name": "__reportResultWithCallbackGasBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10089,
                      "src": "3175:33:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10263,
                        "name": "_immutables",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10223,
                        "src": "3211:11:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EvmImmutables_$10220_memory_ptr",
                          "typeString": "struct WitOracleBaseQueriable.EvmImmutables memory"
                        }
                      },
                      "id": 10264,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3223:31:31",
                      "memberName": "reportResultWithCallbackGasBase",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10215,
                      "src": "3211:43:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "3175:79:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10266,
                  "nodeType": "ExpressionStatement",
                  "src": "3175:79:31"
                },
                {
                  "expression": {
                    "id": 10270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10267,
                      "name": "__reportResultWithCallbackRevertGasBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10091,
                      "src": "3265:39:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10268,
                        "name": "_immutables",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10223,
                        "src": "3307:11:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EvmImmutables_$10220_memory_ptr",
                          "typeString": "struct WitOracleBaseQueriable.EvmImmutables memory"
                        }
                      },
                      "id": 10269,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3319:37:31",
                      "memberName": "reportResultWithCallbackRevertGasBase",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10217,
                      "src": "3307:49:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "3265:91:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10271,
                  "nodeType": "ExpressionStatement",
                  "src": "3265:91:31"
                },
                {
                  "expression": {
                    "id": 10275,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10272,
                      "name": "__sstoreFromZeroGas",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10093,
                      "src": "3367:19:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 10273,
                        "name": "_immutables",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10223,
                        "src": "3389:11:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_EvmImmutables_$10220_memory_ptr",
                          "typeString": "struct WitOracleBaseQueriable.EvmImmutables memory"
                        }
                      },
                      "id": 10274,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3401:17:31",
                      "memberName": "sstoreFromZeroGas",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10219,
                      "src": "3389:29:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "3367:51:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10276,
                  "nodeType": "ExpressionStatement",
                  "src": "3367:51:31"
                }
              ]
            },
            "id": 10278,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10223,
                  "mutability": "mutable",
                  "name": "_immutables",
                  "nameLocation": "2730:11:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10278,
                  "src": "2709:32:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_EvmImmutables_$10220_memory_ptr",
                    "typeString": "struct WitOracleBaseQueriable.EvmImmutables"
                  },
                  "typeName": {
                    "id": 10222,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10221,
                      "name": "EvmImmutables",
                      "nameLocations": [
                        "2709:13:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 10220,
                      "src": "2709:13:31"
                    },
                    "referencedDeclaration": 10220,
                    "src": "2709:13:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_EvmImmutables_$10220_storage_ptr",
                      "typeString": "struct WitOracleBaseQueriable.EvmImmutables"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10226,
                  "mutability": "mutable",
                  "name": "_registry",
                  "nameLocation": "2779:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10278,
                  "src": "2756:32:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitOracleRadonRegistry_$726",
                    "typeString": "contract WitOracleRadonRegistry"
                  },
                  "typeName": {
                    "id": 10225,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10224,
                      "name": "WitOracleRadonRegistry",
                      "nameLocations": [
                        "2756:22:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 726,
                      "src": "2756:22:31"
                    },
                    "referencedDeclaration": 726,
                    "src": "2756:22:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitOracleRadonRegistry_$726",
                      "typeString": "contract WitOracleRadonRegistry"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2694:105:31"
            },
            "returnParameters": {
              "id": 10228,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2805:0:31"
            },
            "scope": 11059,
            "src": "2683:743:31",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26743
            ],
            "functionSelector": "6f07abcc",
            "id": 10286,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryStatus",
            "nameLocation": "3443:14:31",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10280,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10286,
                  "src": "3458:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10279,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3458:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3457:9:31"
            },
            "returnParameters": {
              "id": 10285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10284,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10286,
                  "src": "3496:18:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_QueryStatus_$37335",
                    "typeString": "enum Witnet.QueryStatus"
                  },
                  "typeName": {
                    "id": 10283,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10282,
                      "name": "Witnet.QueryStatus",
                      "nameLocations": [
                        "3496:6:31",
                        "3503:11:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37335,
                      "src": "3496:18:31"
                    },
                    "referencedDeclaration": 37335,
                    "src": "3496:18:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$37335",
                      "typeString": "enum Witnet.QueryStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3495:20:31"
            },
            "scope": 11059,
            "src": "3434:82:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              45745
            ],
            "body": {
              "id": 10296,
              "nodeType": "Block",
              "src": "3888:37:31",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 10293,
                      "name": "tx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967270,
                      "src": "3906:2:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_transaction",
                        "typeString": "tx"
                      }
                    },
                    "id": 10294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3909:8:31",
                    "memberName": "gasprice",
                    "nodeType": "MemberAccess",
                    "src": "3906:11:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10292,
                  "id": 10295,
                  "nodeType": "Return",
                  "src": "3899:18:31"
                }
              ]
            },
            "documentation": {
              "id": 10287,
              "nodeType": "StructuredDocumentation",
              "src": "3774:35:31",
              "text": "Gets current transaction price."
            },
            "id": 10297,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getGasPrice",
            "nameLocation": "3824:12:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10289,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3861:8:31"
            },
            "parameters": {
              "id": 10288,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3836:2:31"
            },
            "returnParameters": {
              "id": 10292,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10291,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10297,
                  "src": "3879:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10290,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3879:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3878:9:31"
            },
            "scope": 11059,
            "src": "3815:110:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45751
            ],
            "body": {
              "id": 10307,
              "nodeType": "Block",
              "src": "4044:36:31",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 10304,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967281,
                      "src": "4062:3:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 10305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "4066:6:31",
                    "memberName": "sender",
                    "nodeType": "MemberAccess",
                    "src": "4062:10:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 10303,
                  "id": 10306,
                  "nodeType": "Return",
                  "src": "4055:17:31"
                }
              ]
            },
            "documentation": {
              "id": 10298,
              "nodeType": "StructuredDocumentation",
              "src": "3933:31:31",
              "text": "Gets message actual sender."
            },
            "id": 10308,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getMsgSender",
            "nameLocation": "3979:13:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10300,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4017:8:31"
            },
            "parameters": {
              "id": 10299,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3992:2:31"
            },
            "returnParameters": {
              "id": 10303,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10302,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10308,
                  "src": "4035:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10301,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4035:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4034:9:31"
            },
            "scope": 11059,
            "src": "3970:110:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45757
            ],
            "body": {
              "id": 10318,
              "nodeType": "Block",
              "src": "4202:35:31",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 10315,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967281,
                      "src": "4220:3:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 10316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "4224:5:31",
                    "memberName": "value",
                    "nodeType": "MemberAccess",
                    "src": "4220:9:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10314,
                  "id": 10317,
                  "nodeType": "Return",
                  "src": "4213:16:31"
                }
              ]
            },
            "documentation": {
              "id": 10309,
              "nodeType": "StructuredDocumentation",
              "src": "4092:31:31",
              "text": "Gets current payment value."
            },
            "id": 10319,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getMsgValue",
            "nameLocation": "4138:12:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10311,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4175:8:31"
            },
            "parameters": {
              "id": 10310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4150:2:31"
            },
            "returnParameters": {
              "id": 10314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10313,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10319,
                  "src": "4193:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10312,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4193:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4192:9:31"
            },
            "scope": 11059,
            "src": "4129:108:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45765
            ],
            "body": {
              "id": 10336,
              "nodeType": "Block",
              "src": "4468:49:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10333,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10324,
                        "src": "4501:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 10330,
                            "name": "_to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10322,
                            "src": "4487:3:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 10329,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4479:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_payable_$",
                            "typeString": "type(address payable)"
                          },
                          "typeName": {
                            "id": 10328,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "4479:8:31",
                            "stateMutability": "payable",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 10331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4479:12:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 10332,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4492:8:31",
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "src": "4479:21:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 10334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4479:30:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10335,
                  "nodeType": "ExpressionStatement",
                  "src": "4479:30:31"
                }
              ]
            },
            "documentation": {
              "id": 10320,
              "nodeType": "StructuredDocumentation",
              "src": "4245:127:31",
              "text": "Transfers ETHs to given address.\n @param _to Recipient address.\n @param _amount Amount of ETHs to transfer."
            },
            "id": 10337,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__safeTransferTo",
            "nameLocation": "4387:16:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10326,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4450:8:31"
            },
            "parameters": {
              "id": 10325,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10322,
                  "mutability": "mutable",
                  "name": "_to",
                  "nameLocation": "4420:3:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10337,
                  "src": "4404:19:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 10321,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4404:15:31",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10324,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "4433:7:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10337,
                  "src": "4425:15:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10323,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4425:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4403:38:31"
            },
            "returnParameters": {
              "id": 10327,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4468:0:31"
            },
            "scope": 11059,
            "src": "4378:139:31",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26626
            ],
            "body": {
              "id": 10355,
              "nodeType": "Block",
              "src": "5073:132:31",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10346,
                      "name": "_evmGasPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10340,
                      "src": "5091:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10351,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10347,
                            "name": "__reportResultGasBase",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10087,
                            "src": "5121:21:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10350,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "34",
                              "id": 10348,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5163:1:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "id": 10349,
                              "name": "__sstoreFromZeroGas",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10093,
                              "src": "5167:19:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5163:23:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5121:65:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 10352,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "5106:91:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5091:106:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10345,
                  "id": 10354,
                  "nodeType": "Return",
                  "src": "5084:113:31"
                }
              ]
            },
            "documentation": {
              "id": 10338,
              "nodeType": "StructuredDocumentation",
              "src": "4779:162:31",
              "text": "@notice Estimate the minimum reward required for posting a data request.\n @param _evmGasPrice Expected gas price to pay upon posting the data request."
            },
            "functionSelector": "39a8653e",
            "id": 10356,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFee",
            "nameLocation": "4956:15:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10342,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5032:8:31"
            },
            "parameters": {
              "id": 10341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10340,
                  "mutability": "mutable",
                  "name": "_evmGasPrice",
                  "nameLocation": "4980:12:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10356,
                  "src": "4972:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10339,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4972:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4971:22:31"
            },
            "returnParameters": {
              "id": 10345,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10344,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10356,
                  "src": "5059:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10343,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5059:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5058:9:31"
            },
            "scope": 11059,
            "src": "4947:258:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26636
            ],
            "body": {
              "id": 10401,
              "nodeType": "Block",
              "src": "5665:776:31",
              "statements": [
                {
                  "assignments": [
                    10368
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10368,
                      "mutability": "mutable",
                      "name": "_reportResultWithCallbackGasThreshold",
                      "nameLocation": "5681:37:31",
                      "nodeType": "VariableDeclaration",
                      "scope": 10401,
                      "src": "5676:42:31",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10367,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "5676:4:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10375,
                  "initialValue": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10369,
                          "name": "__reportResultWithCallbackRevertGasBase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10091,
                          "src": "5736:39:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10372,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "hexValue": "33",
                            "id": 10370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5795:1:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "id": 10371,
                            "name": "__sstoreFromZeroGas",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10093,
                            "src": "5799:19:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5795:23:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5736:82:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 10374,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5721:108:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5676:153:31"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 10384,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 10378,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 10376,
                        "name": "_evmCallbackGasLimit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10361,
                        "src": "5858:20:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "id": 10377,
                        "name": "_reportResultWithCallbackGasThreshold",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10368,
                        "src": "5881:37:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5858:60:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 10383,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10381,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10379,
                          "name": "__reportResultWithCallbackGasBase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10089,
                          "src": "5939:33:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "id": 10380,
                          "name": "_evmCallbackGasLimit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10361,
                          "src": "5975:20:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "src": "5939:56:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "id": 10382,
                        "name": "_reportResultWithCallbackGasThreshold",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10368,
                        "src": "5998:37:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5939:96:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5858:177:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10399,
                    "nodeType": "Block",
                    "src": "6194:240:31",
                    "statements": [
                      {
                        "expression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 10396,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 10391,
                                "name": "_evmGasPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10359,
                                "src": "6235:12:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10394,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10392,
                                      "name": "__reportResultWithCallbackGasBase",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10089,
                                      "src": "6299:33:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "id": 10393,
                                      "name": "_evmCallbackGasLimit",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10361,
                                      "src": "6364:20:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint24",
                                        "typeString": "uint24"
                                      }
                                    },
                                    "src": "6299:85:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "id": 10395,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "6272:135:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "6235:172:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 10397,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "6216:206:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 10366,
                        "id": 10398,
                        "nodeType": "Return",
                        "src": "6209:213:31"
                      }
                    ]
                  },
                  "id": 10400,
                  "nodeType": "IfStatement",
                  "src": "5840:594:31",
                  "trueBody": {
                    "id": 10390,
                    "nodeType": "Block",
                    "src": "6047:141:31",
                    "statements": [
                      {
                        "expression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 10387,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 10385,
                                "name": "_evmGasPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10359,
                                "src": "6088:12:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "id": 10386,
                                "name": "_reportResultWithCallbackGasThreshold",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10368,
                                "src": "6124:37:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "6088:73:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 10388,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "6069:107:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 10366,
                        "id": 10389,
                        "nodeType": "Return",
                        "src": "6062:114:31"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 10357,
              "nodeType": "StructuredDocumentation",
              "src": "5213:279:31",
              "text": "@notice Estimate the minimum reward required for posting a data request with a callback.\n @param _evmGasPrice Expected gas price to pay upon posting the data request.\n @param _evmCallbackGasLimit Maximum gas to be spent when reporting the data request result."
            },
            "functionSelector": "05e742ef",
            "id": 10402,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFeeWithCallback",
            "nameLocation": "5507:27:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10363,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5624:8:31"
            },
            "parameters": {
              "id": 10362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10359,
                  "mutability": "mutable",
                  "name": "_evmGasPrice",
                  "nameLocation": "5543:12:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10402,
                  "src": "5535:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10358,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5535:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10361,
                  "mutability": "mutable",
                  "name": "_evmCallbackGasLimit",
                  "nameLocation": "5564:20:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10402,
                  "src": "5557:27:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 10360,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "5557:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5534:51:31"
            },
            "returnParameters": {
              "id": 10366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10365,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10402,
                  "src": "5651:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10364,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5651:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5650:9:31"
            },
            "scope": 11059,
            "src": "5498:943:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26649
            ],
            "body": {
              "id": 10442,
              "nodeType": "Block",
              "src": "7313:290:31",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10439,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10419,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10416,
                            "name": "_evmWitPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10407,
                            "src": "7346:12:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "expression": {
                              "id": 10417,
                              "name": "_querySLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10410,
                              "src": "7361:9:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                "typeString": "struct Witnet.QuerySLA memory"
                              }
                            },
                            "id": 10418,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7371:16:31",
                            "memberName": "witUnitaryReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37372,
                            "src": "7361:26:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "7346:41:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "components": [
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                },
                                "id": 10423,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 10420,
                                    "name": "_querySLA",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10410,
                                    "src": "7408:9:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                      "typeString": "struct Witnet.QuerySLA memory"
                                    }
                                  },
                                  "id": 10421,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7418:16:31",
                                  "memberName": "witResultMaxSize",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37368,
                                  "src": "7408:26:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint16",
                                    "typeString": "uint16"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "3332",
                                  "id": 10422,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7437:2:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_32_by_1",
                                    "typeString": "int_const 32"
                                  },
                                  "value": "32"
                                },
                                "src": "7408:31:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "hexValue": "30",
                                "id": 10436,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7564:1:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "id": 10437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "7408:157:31",
                              "trueExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10435,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10426,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10424,
                                    "name": "_evmGasPrice",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10405,
                                    "src": "7463:12:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "id": 10425,
                                    "name": "__sstoreFromZeroGas",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10093,
                                    "src": "7478:19:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "7463:34:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint16",
                                        "typeString": "uint16"
                                      },
                                      "id": 10433,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "components": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_uint16",
                                              "typeString": "uint16"
                                            },
                                            "id": 10430,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 10427,
                                                "name": "_querySLA",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10410,
                                                "src": "7502:9:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                                  "typeString": "struct Witnet.QuerySLA memory"
                                                }
                                              },
                                              "id": 10428,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "7512:16:31",
                                              "memberName": "witResultMaxSize",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 37368,
                                              "src": "7502:26:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint16",
                                                "typeString": "uint16"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "-",
                                            "rightExpression": {
                                              "hexValue": "3332",
                                              "id": 10429,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7531:2:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_32_by_1",
                                                "typeString": "int_const 32"
                                              },
                                              "value": "32"
                                            },
                                            "src": "7502:31:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint16",
                                              "typeString": "uint16"
                                            }
                                          }
                                        ],
                                        "id": 10431,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "7501:33:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint16",
                                          "typeString": "uint16"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "/",
                                      "rightExpression": {
                                        "hexValue": "3332",
                                        "id": 10432,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7537:2:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_32_by_1",
                                          "typeString": "int_const 32"
                                        },
                                        "value": "32"
                                      },
                                      "src": "7501:38:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint16",
                                        "typeString": "uint16"
                                      }
                                    }
                                  ],
                                  "id": 10434,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "7500:40:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint16",
                                    "typeString": "uint16"
                                  }
                                },
                                "src": "7463:77:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 10438,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "7407:177:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7346:238:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 10440,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "7331:264:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10415,
                  "id": 10441,
                  "nodeType": "Return",
                  "src": "7324:271:31"
                }
              ]
            },
            "documentation": {
              "id": 10403,
              "nodeType": "StructuredDocumentation",
              "src": "6449:623:31",
              "text": "@notice Estimate the extra reward (i.e. over the base fee) to be paid when posting a new\n @notice data query in order to avoid getting provable \"too low incentives\" results from\n @notice the Wit/Oracle blockchain. \n @dev The extra fee gets calculated in proportion to:\n @param _evmGasPrice Tentative EVM gas price at the moment the query result is ready.\n @param _evmWitPrice Tentative nanoWit price in Wei at the moment the query is solved on the Wit/Oracle blockchain.\n @param _querySLA The query SLA data security parameters as required for the Wit/Oracle blockchain. "
            },
            "functionSelector": "d0a92a08",
            "id": 10443,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateExtraFee",
            "nameLocation": "7087:16:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10412,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7272:8:31"
            },
            "parameters": {
              "id": 10411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10405,
                  "mutability": "mutable",
                  "name": "_evmGasPrice",
                  "nameLocation": "7126:12:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10443,
                  "src": "7118:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10404,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7118:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10407,
                  "mutability": "mutable",
                  "name": "_evmWitPrice",
                  "nameLocation": "7162:12:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10443,
                  "src": "7154:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10406,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7154:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10410,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "7213:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10443,
                  "src": "7190:32:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 10409,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10408,
                      "name": "Witnet.QuerySLA",
                      "nameLocations": [
                        "7190:6:31",
                        "7197:8:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "7190:15:31"
                    },
                    "referencedDeclaration": 37373,
                    "src": "7190:15:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7103:130:31"
            },
            "returnParameters": {
              "id": 10415,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10414,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10443,
                  "src": "7299:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10413,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7299:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7298:9:31"
            },
            "scope": 11059,
            "src": "7078:525:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26666
            ],
            "body": {
              "id": 10459,
              "nodeType": "Block",
              "src": "7822:61:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10456,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10447,
                        "src": "7866:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      ],
                      "expression": {
                        "id": 10454,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "7840:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10455,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7857:8:31",
                      "memberName": "getQuery",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18924,
                      "src": "7840:25:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_struct$_Query_$37326_memory_ptr_$",
                        "typeString": "function (Witnet.QueryId) view returns (struct Witnet.Query memory)"
                      }
                    },
                    "id": 10457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7840:35:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$37326_memory_ptr",
                      "typeString": "struct Witnet.Query memory"
                    }
                  },
                  "functionReturnParameters": 10453,
                  "id": 10458,
                  "nodeType": "Return",
                  "src": "7833:42:31"
                }
              ]
            },
            "documentation": {
              "id": 10444,
              "nodeType": "StructuredDocumentation",
              "src": "7611:77:31",
              "text": "Gets the whole Query data contents, if any, no matter its current status."
            },
            "functionSelector": "8cfcdea2",
            "id": 10460,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQuery",
            "nameLocation": "7703:8:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10449,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7771:8:31"
            },
            "parameters": {
              "id": 10448,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10447,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "7727:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10460,
                  "src": "7712:23:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 10446,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10445,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "7712:6:31",
                        "7719:7:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "7712:14:31"
                    },
                    "referencedDeclaration": 37151,
                    "src": "7712:14:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7711:25:31"
            },
            "returnParameters": {
              "id": 10453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10452,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10460,
                  "src": "7796:19:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Query_$37326_memory_ptr",
                    "typeString": "struct Witnet.Query"
                  },
                  "typeName": {
                    "id": 10451,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10450,
                      "name": "Witnet.Query",
                      "nameLocations": [
                        "7796:6:31",
                        "7803:5:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37326,
                      "src": "7796:12:31"
                    },
                    "referencedDeclaration": 37326,
                    "src": "7796:12:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$37326_storage_ptr",
                      "typeString": "struct Witnet.Query"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7795:21:31"
            },
            "scope": 11059,
            "src": "7694:189:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26675
            ],
            "body": {
              "id": 10477,
              "nodeType": "Block",
              "src": "8117:62:31",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 10470,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11058,
                            "src": "8135:9:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$18055_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitOracleDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 10471,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8135:11:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                            "typeString": "struct WitOracleDataLib.Storage storage pointer"
                          }
                        },
                        "id": 10472,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "8147:7:31",
                        "memberName": "queries",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18042,
                        "src": "8135:19:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Query_$18074_storage_$",
                          "typeString": "mapping(uint256 => struct WitOracleDataLib.Query storage ref)"
                        }
                      },
                      "id": 10474,
                      "indexExpression": {
                        "id": 10473,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10463,
                        "src": "8155:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "8135:29:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Query_$18074_storage",
                        "typeString": "struct WitOracleDataLib.Query storage ref"
                      }
                    },
                    "id": 10475,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "8165:6:31",
                    "memberName": "reward",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 18070,
                    "src": "8135:36:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                      "typeString": "Witnet.QueryEvmReward"
                    }
                  },
                  "functionReturnParameters": 10469,
                  "id": 10476,
                  "nodeType": "Return",
                  "src": "8128:43:31"
                }
              ]
            },
            "documentation": {
              "id": 10461,
              "nodeType": "StructuredDocumentation",
              "src": "7891:78:31",
              "text": "@notice Gets the current EVM reward the report can claim, if not done yet."
            },
            "functionSelector": "6fdaab7e",
            "id": 10478,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryEvmReward",
            "nameLocation": "7984:17:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10465,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8062:8:31"
            },
            "parameters": {
              "id": 10464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10463,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "8010:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10478,
                  "src": "8002:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10462,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8002:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8001:18:31"
            },
            "returnParameters": {
              "id": 10469,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10468,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10478,
                  "src": "8089:21:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                    "typeString": "Witnet.QueryEvmReward"
                  },
                  "typeName": {
                    "id": 10467,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10466,
                      "name": "Witnet.QueryEvmReward",
                      "nameLocations": [
                        "8089:6:31",
                        "8096:14:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37147,
                      "src": "8089:21:31"
                    },
                    "referencedDeclaration": 37147,
                    "src": "8089:21:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                      "typeString": "Witnet.QueryEvmReward"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8088:23:31"
            },
            "scope": 11059,
            "src": "7975:204:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26685
            ],
            "body": {
              "id": 10494,
              "nodeType": "Block",
              "src": "8453:68:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10491,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10482,
                        "src": "8504:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      ],
                      "expression": {
                        "id": 10489,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "8471:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10490,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8488:15:31",
                      "memberName": "getQueryRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18995,
                      "src": "8471:32:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_struct$_QueryRequest_$37351_memory_ptr_$",
                        "typeString": "function (Witnet.QueryId) view returns (struct Witnet.QueryRequest memory)"
                      }
                    },
                    "id": 10492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8471:42:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryRequest_$37351_memory_ptr",
                      "typeString": "struct Witnet.QueryRequest memory"
                    }
                  },
                  "functionReturnParameters": 10488,
                  "id": 10493,
                  "nodeType": "Return",
                  "src": "8464:49:31"
                }
              ]
            },
            "documentation": {
              "id": 10479,
              "nodeType": "StructuredDocumentation",
              "src": "8187:127:31",
              "text": "@notice Retrieves the RAD hash and SLA parameters of the given query.\n @param _queryId The unique query identifier."
            },
            "functionSelector": "a667533f",
            "id": 10495,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryRequest",
            "nameLocation": "8329:15:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10484,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8393:8:31"
            },
            "parameters": {
              "id": 10483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10482,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "8360:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10495,
                  "src": "8345:23:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 10481,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10480,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "8345:6:31",
                        "8352:7:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "8345:14:31"
                    },
                    "referencedDeclaration": 37151,
                    "src": "8345:14:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8344:25:31"
            },
            "returnParameters": {
              "id": 10488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10487,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10495,
                  "src": "8420:26:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QueryRequest_$37351_memory_ptr",
                    "typeString": "struct Witnet.QueryRequest"
                  },
                  "typeName": {
                    "id": 10486,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10485,
                      "name": "Witnet.QueryRequest",
                      "nameLocations": [
                        "8420:6:31",
                        "8427:12:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37351,
                      "src": "8420:19:31"
                    },
                    "referencedDeclaration": 37351,
                    "src": "8420:19:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryRequest_$37351_storage_ptr",
                      "typeString": "struct Witnet.QueryRequest"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8419:28:31"
            },
            "scope": 11059,
            "src": "8320:201:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26695
            ],
            "body": {
              "id": 10511,
              "nodeType": "Block",
              "src": "8887:69:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10508,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10499,
                        "src": "8939:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      ],
                      "expression": {
                        "id": 10506,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "8905:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8922:16:31",
                      "memberName": "getQueryResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19118,
                      "src": "8905:33:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_struct$_QueryResponse_$37365_memory_ptr_$",
                        "typeString": "function (Witnet.QueryId) view returns (struct Witnet.QueryResponse memory)"
                      }
                    },
                    "id": 10509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8905:43:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryResponse_$37365_memory_ptr",
                      "typeString": "struct Witnet.QueryResponse memory"
                    }
                  },
                  "functionReturnParameters": 10505,
                  "id": 10510,
                  "nodeType": "Return",
                  "src": "8898:50:31"
                }
              ]
            },
            "documentation": {
              "id": 10496,
              "nodeType": "StructuredDocumentation",
              "src": "8529:211:31",
              "text": "Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \n @dev Fails if the `_queryId` is not in 'Reported' status.\n @param _queryId The unique query identifier"
            },
            "functionSelector": "ca7da98b",
            "id": 10512,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResponse",
            "nameLocation": "8755:16:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10501,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8814:8:31"
            },
            "parameters": {
              "id": 10500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10499,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "8787:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10512,
                  "src": "8772:23:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 10498,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10497,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "8772:6:31",
                        "8779:7:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "8772:14:31"
                    },
                    "referencedDeclaration": 37151,
                    "src": "8772:14:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8771:25:31"
            },
            "returnParameters": {
              "id": 10505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10504,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10512,
                  "src": "8853:27:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QueryResponse_$37365_memory_ptr",
                    "typeString": "struct Witnet.QueryResponse"
                  },
                  "typeName": {
                    "id": 10503,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10502,
                      "name": "Witnet.QueryResponse",
                      "nameLocations": [
                        "8853:6:31",
                        "8860:13:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37365,
                      "src": "8853:20:31"
                    },
                    "referencedDeclaration": 37365,
                    "src": "8853:20:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryResponse_$37365_storage_ptr",
                      "typeString": "struct Witnet.QueryResponse"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8852:29:31"
            },
            "scope": 11059,
            "src": "8746:210:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26703
            ],
            "body": {
              "id": 10526,
              "nodeType": "Block",
              "src": "9094:67:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10523,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10514,
                        "src": "9144:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 10521,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "9112:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10522,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9129:14:31",
                      "memberName": "getQueryResult",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19205,
                      "src": "9112:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "function (uint256) view returns (struct Witnet.DataResult memory)"
                      }
                    },
                    "id": 10524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9112:41:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "functionReturnParameters": 10520,
                  "id": 10525,
                  "nodeType": "Return",
                  "src": "9105:48:31"
                }
              ]
            },
            "functionSelector": "59209b39",
            "id": 10527,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResult",
            "nameLocation": "8973:14:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10516,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9023:8:31"
            },
            "parameters": {
              "id": 10515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10514,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "8996:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10527,
                  "src": "8988:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10513,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8988:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8987:18:31"
            },
            "returnParameters": {
              "id": 10520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10519,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10527,
                  "src": "9063:24:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 10518,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10517,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "9063:6:31",
                        "9070:10:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "9063:17:31"
                    },
                    "referencedDeclaration": 37293,
                    "src": "9063:17:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9062:26:31"
            },
            "scope": 11059,
            "src": "8964:197:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26711
            ],
            "body": {
              "id": 10541,
              "nodeType": "Block",
              "src": "9300:73:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10538,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10529,
                        "src": "9356:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 10536,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "9318:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9335:20:31",
                      "memberName": "getQueryResultStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19343,
                      "src": "9318:37:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_enum$_ResultStatus_$37698_$",
                        "typeString": "function (uint256) view returns (enum Witnet.ResultStatus)"
                      }
                    },
                    "id": 10539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9318:47:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "functionReturnParameters": 10535,
                  "id": 10540,
                  "nodeType": "Return",
                  "src": "9311:54:31"
                }
              ]
            },
            "functionSelector": "4cddf615",
            "id": 10542,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResultStatus",
            "nameLocation": "9178:20:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10531,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9234:8:31"
            },
            "parameters": {
              "id": 10530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10529,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "9207:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10542,
                  "src": "9199:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10528,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9199:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9198:18:31"
            },
            "returnParameters": {
              "id": 10535,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10534,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10542,
                  "src": "9274:19:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultStatus_$37698",
                    "typeString": "enum Witnet.ResultStatus"
                  },
                  "typeName": {
                    "id": 10533,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10532,
                      "name": "Witnet.ResultStatus",
                      "nameLocations": [
                        "9274:6:31",
                        "9281:12:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37698,
                      "src": "9274:19:31"
                    },
                    "referencedDeclaration": 37698,
                    "src": "9274:19:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultStatus_$37698",
                      "typeString": "enum Witnet.ResultStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9273:21:31"
            },
            "scope": 11059,
            "src": "9169:204:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26718
            ],
            "body": {
              "id": 10561,
              "nodeType": "Block",
              "src": "9516:138:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 10556,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10544,
                                "src": "9625:8:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 10554,
                                "name": "WitOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20110,
                                "src": "9593:16:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                  "typeString": "type(library WitOracleDataLib)"
                                }
                              },
                              "id": 10555,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9610:14:31",
                              "memberName": "getQueryResult",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19205,
                              "src": "9593:31:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_struct$_DataResult_$37293_memory_ptr_$",
                                "typeString": "function (uint256) view returns (struct Witnet.DataResult memory)"
                              }
                            },
                            "id": 10557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9593:41:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                              "typeString": "struct Witnet.DataResult memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                              "typeString": "struct Witnet.DataResult memory"
                            }
                          ],
                          "expression": {
                            "id": 10552,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "9582:3:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 10553,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "9586:6:31",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "9582:10:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 10558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9582:53:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 10550,
                        "name": "WitOracleResultStatusLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37119,
                        "src": "9534:24:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleResultStatusLib_$37119_$",
                          "typeString": "type(library WitOracleResultStatusLib)"
                        }
                      },
                      "id": 10551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9559:8:31",
                      "memberName": "toString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 36607,
                      "src": "9534:33:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (string memory)"
                      }
                    },
                    "id": 10559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9534:112:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 10549,
                  "id": 10560,
                  "nodeType": "Return",
                  "src": "9527:119:31"
                }
              ]
            },
            "functionSelector": "c2581348",
            "id": 10562,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResultStatusDescription",
            "nameLocation": "9390:31:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10546,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9457:8:31"
            },
            "parameters": {
              "id": 10545,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10544,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "9430:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10562,
                  "src": "9422:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10543,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9422:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9421:18:31"
            },
            "returnParameters": {
              "id": 10549,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10548,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10562,
                  "src": "9496:13:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10547,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9496:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9495:15:31"
            },
            "scope": 11059,
            "src": "9381:273:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26734
            ],
            "body": {
              "id": 10630,
              "nodeType": "Block",
              "src": "10015:415:31",
              "statements": [
                {
                  "assignments": [
                    10583
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10583,
                      "mutability": "mutable",
                      "name": "__query",
                      "nameLocation": "10057:7:31",
                      "nodeType": "VariableDeclaration",
                      "scope": 10630,
                      "src": "10026:38:31",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                        "typeString": "struct WitOracleDataLib.Query"
                      },
                      "typeName": {
                        "id": 10582,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 10581,
                          "name": "WitOracleDataLib.Query",
                          "nameLocations": [
                            "10026:16:31",
                            "10043:5:31"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 18074,
                          "src": "10026:22:31"
                        },
                        "referencedDeclaration": 18074,
                        "src": "10026:22:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10588,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 10586,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10565,
                        "src": "10094:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 10584,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "10067:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10084:9:31",
                      "memberName": "seekQuery",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18181,
                      "src": "10067:26:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Query_$18074_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitOracleDataLib.Query storage pointer)"
                      }
                    },
                    "id": 10587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10067:36:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Query storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10026:77:31"
                },
                {
                  "expression": {
                    "id": 10599,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10589,
                      "name": "queryUUID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10569,
                      "src": "10114:9:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 10595,
                                "name": "__query",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10583,
                                "src": "10158:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                                  "typeString": "struct WitOracleDataLib.Query storage pointer"
                                }
                              },
                              "id": 10596,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10166:4:31",
                              "memberName": "uuid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 18067,
                              "src": "10158:12:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                                "typeString": "Witnet.QueryUUID"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                                "typeString": "Witnet.QueryUUID"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 10592,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "10134:6:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 10593,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10141:9:31",
                              "memberName": "QueryUUID",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37149,
                              "src": "10134:16:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryUUID_$37149_$",
                                "typeString": "type(Witnet.QueryUUID)"
                              }
                            },
                            "id": 10594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "10151:6:31",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "10134:23:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryUUID_$37149_$returns$_t_bytes15_$",
                              "typeString": "function (Witnet.QueryUUID) pure returns (bytes15)"
                            }
                          },
                          "id": 10597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10134:37:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes15",
                            "typeString": "bytes15"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes15",
                            "typeString": "bytes15"
                          }
                        ],
                        "id": 10591,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10126:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 10590,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "10126:7:31",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 10598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10126:46:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "10114:58:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 10600,
                  "nodeType": "ExpressionStatement",
                  "src": "10114:58:31"
                },
                {
                  "expression": {
                    "id": 10609,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10601,
                      "name": "resultDrTxHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10572,
                      "src": "10183:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                        "typeString": "Witnet.TransactionHash"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "expression": {
                              "id": 10605,
                              "name": "__query",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10583,
                              "src": "10228:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                                "typeString": "struct WitOracleDataLib.Query storage pointer"
                              }
                            },
                            "id": 10606,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10236:8:31",
                            "memberName": "response",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18061,
                            "src": "10228:16:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QueryResponse_$18100_storage",
                              "typeString": "struct WitOracleDataLib.QueryResponse storage ref"
                            }
                          },
                          "id": 10607,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10245:14:31",
                          "memberName": "resultDrTxHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18095,
                          "src": "10228:31:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10602,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "10200:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10603,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10207:15:31",
                          "memberName": "TransactionHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37159,
                          "src": "10200:22:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_TransactionHash_$37159_$",
                            "typeString": "type(Witnet.TransactionHash)"
                          }
                        },
                        "id": 10604,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "10223:4:31",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "10200:27:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_TransactionHash_$37159_$",
                          "typeString": "function (bytes32) pure returns (Witnet.TransactionHash)"
                        }
                      },
                      "id": 10608,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10200:60:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                        "typeString": "Witnet.TransactionHash"
                      }
                    },
                    "src": "10183:77:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                      "typeString": "Witnet.TransactionHash"
                    }
                  },
                  "id": 10610,
                  "nodeType": "ExpressionStatement",
                  "src": "10183:77:31"
                },
                {
                  "expression": {
                    "id": 10619,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10611,
                      "name": "resultTimestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10575,
                      "src": "10271:15:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                        "typeString": "Witnet.Timestamp"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "expression": {
                              "id": 10615,
                              "name": "__query",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10583,
                              "src": "10311:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                                "typeString": "struct WitOracleDataLib.Query storage pointer"
                              }
                            },
                            "id": 10616,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10319:8:31",
                            "memberName": "response",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18061,
                            "src": "10311:16:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QueryResponse_$18100_storage",
                              "typeString": "struct WitOracleDataLib.QueryResponse storage ref"
                            }
                          },
                          "id": 10617,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10328:15:31",
                          "memberName": "resultTimestamp",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18093,
                          "src": "10311:32:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10612,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "10289:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10613,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10296:9:31",
                          "memberName": "Timestamp",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37157,
                          "src": "10289:16:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "type(Witnet.Timestamp)"
                          }
                        },
                        "id": 10614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "10306:4:31",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "10289:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$37157_$",
                          "typeString": "function (uint64) pure returns (Witnet.Timestamp)"
                        }
                      },
                      "id": 10618,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10289:55:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                        "typeString": "Witnet.Timestamp"
                      }
                    },
                    "src": "10271:73:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "id": 10620,
                  "nodeType": "ExpressionStatement",
                  "src": "10271:73:31"
                },
                {
                  "expression": {
                    "id": 10628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10621,
                      "name": "resultFinalityBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10577,
                      "src": "10355:19:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 10625,
                            "name": "__query",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10583,
                            "src": "10403:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                              "typeString": "struct WitOracleDataLib.Query storage pointer"
                            }
                          },
                          "id": 10626,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10411:10:31",
                          "memberName": "checkpoint",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18073,
                          "src": "10403:18:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                            "typeString": "Witnet.BlockNumber"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10622,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "10377:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10623,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10384:11:31",
                          "memberName": "BlockNumber",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37145,
                          "src": "10377:18:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 10624,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "10396:6:31",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "10377:25:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_BlockNumber_$37145_$returns$_t_uint64_$",
                          "typeString": "function (Witnet.BlockNumber) pure returns (uint64)"
                        }
                      },
                      "id": 10627,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10377:45:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "10355:67:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10629,
                  "nodeType": "ExpressionStatement",
                  "src": "10355:67:31"
                }
              ]
            },
            "documentation": {
              "id": 10563,
              "nodeType": "StructuredDocumentation",
              "src": "9662:51:31",
              "text": "@notice Gets query's result back tracing trails"
            },
            "functionSelector": "3fa59576",
            "id": 10631,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResultTrails",
            "nameLocation": "9728:20:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10567,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9785:8:31"
            },
            "parameters": {
              "id": 10566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10565,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "9757:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10631,
                  "src": "9749:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10564,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9749:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9748:18:31"
            },
            "returnParameters": {
              "id": 10578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10569,
                  "mutability": "mutable",
                  "name": "queryUUID",
                  "nameLocation": "9848:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10631,
                  "src": "9840:17:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10568,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9840:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10572,
                  "mutability": "mutable",
                  "name": "resultDrTxHash",
                  "nameLocation": "9895:14:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10631,
                  "src": "9872:37:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                    "typeString": "Witnet.TransactionHash"
                  },
                  "typeName": {
                    "id": 10571,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10570,
                      "name": "Witnet.TransactionHash",
                      "nameLocations": [
                        "9872:6:31",
                        "9879:15:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37159,
                      "src": "9872:22:31"
                    },
                    "referencedDeclaration": 37159,
                    "src": "9872:22:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                      "typeString": "Witnet.TransactionHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10575,
                  "mutability": "mutable",
                  "name": "resultTimestamp",
                  "nameLocation": "9941:15:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10631,
                  "src": "9924:32:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 10574,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10573,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "9924:6:31",
                        "9931:9:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "9924:16:31"
                    },
                    "referencedDeclaration": 37157,
                    "src": "9924:16:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10577,
                  "mutability": "mutable",
                  "name": "resultFinalityBlock",
                  "nameLocation": "9979:19:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10631,
                  "src": "9971:27:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10576,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9971:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9825:184:31"
            },
            "scope": 11059,
            "src": "9719:711:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26750
            ],
            "body": {
              "id": 10646,
              "nodeType": "Block",
              "src": "10565:101:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 10642,
                            "name": "_queryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10633,
                            "src": "10638:8:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 10641,
                          "name": "getQueryStatus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10286,
                          "src": "10623:14:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$37335_$",
                            "typeString": "function (uint256) view returns (enum Witnet.QueryStatus)"
                          }
                        },
                        "id": 10643,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10623:24:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_QueryStatus_$37335",
                          "typeString": "enum Witnet.QueryStatus"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_QueryStatus_$37335",
                          "typeString": "enum Witnet.QueryStatus"
                        }
                      ],
                      "expression": {
                        "id": 10639,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "10583:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10600:8:31",
                      "memberName": "toString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20109,
                      "src": "10583:25:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_enum$_QueryStatus_$37335_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (enum Witnet.QueryStatus) pure returns (string memory)"
                      }
                    },
                    "id": 10644,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10583:75:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 10638,
                  "id": 10645,
                  "nodeType": "Return",
                  "src": "10576:82:31"
                }
              ]
            },
            "functionSelector": "838d44e2",
            "id": 10647,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryStatusString",
            "nameLocation": "10447:20:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10635,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10503:8:31"
            },
            "parameters": {
              "id": 10634,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10633,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "10476:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10647,
                  "src": "10468:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10632,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10468:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10467:18:31"
            },
            "returnParameters": {
              "id": 10638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10637,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10647,
                  "src": "10545:13:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10636,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "10545:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10544:15:31"
            },
            "scope": 11059,
            "src": "10438:228:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26761
            ],
            "body": {
              "id": 10691,
              "nodeType": "Block",
              "src": "10840:204:31",
              "statements": [
                {
                  "expression": {
                    "id": 10666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10658,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10656,
                      "src": "10851:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_memory_ptr",
                        "typeString": "enum Witnet.QueryStatus[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 10663,
                            "name": "_queryIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10650,
                            "src": "10886:9:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 10664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10896:6:31",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "10886:16:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 10662,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "10861:24:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_QueryStatus_$37335_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (enum Witnet.QueryStatus[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 10660,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 10659,
                              "name": "Witnet.QueryStatus",
                              "nameLocations": [
                                "10865:6:31",
                                "10872:11:31"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 37335,
                              "src": "10865:18:31"
                            },
                            "referencedDeclaration": 37335,
                            "src": "10865:18:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$37335",
                              "typeString": "enum Witnet.QueryStatus"
                            }
                          },
                          "id": 10661,
                          "nodeType": "ArrayTypeName",
                          "src": "10865:20:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_storage_ptr",
                            "typeString": "enum Witnet.QueryStatus[]"
                          }
                        }
                      },
                      "id": 10665,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10861:42:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_memory_ptr",
                        "typeString": "enum Witnet.QueryStatus[] memory"
                      }
                    },
                    "src": "10851:52:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_memory_ptr",
                      "typeString": "enum Witnet.QueryStatus[] memory"
                    }
                  },
                  "id": 10667,
                  "nodeType": "ExpressionStatement",
                  "src": "10851:52:31"
                },
                {
                  "body": {
                    "id": 10689,
                    "nodeType": "Block",
                    "src": "10965:72:31",
                    "statements": [
                      {
                        "expression": {
                          "id": 10687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 10679,
                              "name": "_status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10656,
                              "src": "10980:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_memory_ptr",
                                "typeString": "enum Witnet.QueryStatus[] memory"
                              }
                            },
                            "id": 10681,
                            "indexExpression": {
                              "id": 10680,
                              "name": "_ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10669,
                              "src": "10988:3:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "10980:12:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$37335",
                              "typeString": "enum Witnet.QueryStatus"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 10683,
                                  "name": "_queryIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10650,
                                  "src": "11010:9:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 10685,
                                "indexExpression": {
                                  "id": 10684,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10669,
                                  "src": "11020:3:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "11010:14:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10682,
                              "name": "getQueryStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10286,
                              "src": "10995:14:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$37335_$",
                                "typeString": "function (uint256) view returns (enum Witnet.QueryStatus)"
                              }
                            },
                            "id": 10686,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10995:30:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$37335",
                              "typeString": "enum Witnet.QueryStatus"
                            }
                          },
                          "src": "10980:45:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_QueryStatus_$37335",
                            "typeString": "enum Witnet.QueryStatus"
                          }
                        },
                        "id": 10688,
                        "nodeType": "ExpressionStatement",
                        "src": "10980:45:31"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10672,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10669,
                      "src": "10933:3:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 10673,
                        "name": "_queryIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10650,
                        "src": "10939:9:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 10674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10949:6:31",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "10939:16:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10933:22:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10690,
                  "initializationExpression": {
                    "assignments": [
                      10669
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10669,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "10924:3:31",
                        "nodeType": "VariableDeclaration",
                        "scope": 10690,
                        "src": "10919:8:31",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10668,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10919:4:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 10671,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 10670,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10930:1:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10919:12:31"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 10677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10957:6:31",
                      "subExpression": {
                        "id": 10676,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10669,
                        "src": "10957:3:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10678,
                    "nodeType": "ExpressionStatement",
                    "src": "10957:6:31"
                  },
                  "nodeType": "ForStatement",
                  "src": "10914:123:31"
                }
              ]
            },
            "functionSelector": "581f5094",
            "id": 10692,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryStatusBatch",
            "nameLocation": "10683:19:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10652,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10750:8:31"
            },
            "parameters": {
              "id": 10651,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10650,
                  "mutability": "mutable",
                  "name": "_queryIds",
                  "nameLocation": "10722:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10692,
                  "src": "10703:28:31",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10648,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10703:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10649,
                    "nodeType": "ArrayTypeName",
                    "src": "10703:9:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10702:30:31"
            },
            "returnParameters": {
              "id": 10657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10656,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "10826:7:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10692,
                  "src": "10798:35:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_memory_ptr",
                    "typeString": "enum Witnet.QueryStatus[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10654,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 10653,
                        "name": "Witnet.QueryStatus",
                        "nameLocations": [
                          "10798:6:31",
                          "10805:11:31"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37335,
                        "src": "10798:18:31"
                      },
                      "referencedDeclaration": 37335,
                      "src": "10798:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_QueryStatus_$37335",
                        "typeString": "enum Witnet.QueryStatus"
                      }
                    },
                    "id": 10655,
                    "nodeType": "ArrayTypeName",
                    "src": "10798:20:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_enum$_QueryStatus_$37335_$dyn_storage_ptr",
                      "typeString": "enum Witnet.QueryStatus[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10797:37:31"
            },
            "scope": 11059,
            "src": "10674:370:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26656
            ],
            "body": {
              "id": 10710,
              "nodeType": "Block",
              "src": "11242:68:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 10707,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 10703,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11058,
                              "src": "11280:9:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$18055_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitOracleDataLib.Storage storage pointer)"
                              }
                            },
                            "id": 10704,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11280:11:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                              "typeString": "struct WitOracleDataLib.Storage storage pointer"
                            }
                          },
                          "id": 10705,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11292:5:31",
                          "memberName": "nonce",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18037,
                          "src": "11280:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 10706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11300:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11280:21:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 10700,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "11260:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 10701,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11267:7:31",
                        "memberName": "QueryId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37151,
                        "src": "11260:14:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                          "typeString": "type(Witnet.QueryId)"
                        }
                      },
                      "id": 10702,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "11275:4:31",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "11260:19:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                        "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                      }
                    },
                    "id": 10708,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11260:42:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "functionReturnParameters": 10699,
                  "id": 10709,
                  "nodeType": "Return",
                  "src": "11253:49:31"
                }
              ]
            },
            "documentation": {
              "id": 10693,
              "nodeType": "StructuredDocumentation",
              "src": "11052:78:31",
              "text": "@notice Returns next query id to be generated by the Witnet Request Board."
            },
            "functionSelector": "c805dd0f",
            "id": 10711,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getNextQueryId",
            "nameLocation": "11145:14:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10695,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11194:8:31"
            },
            "parameters": {
              "id": 10694,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11159:2:31"
            },
            "returnParameters": {
              "id": 10699,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10698,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 10711,
                  "src": "11221:14:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 10697,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10696,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "11221:6:31",
                        "11228:7:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "11221:14:31"
                    },
                    "referencedDeclaration": 37151,
                    "src": "11221:14:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11220:16:31"
            },
            "scope": 11059,
            "src": "11136:174:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26773
            ],
            "body": {
              "id": 10768,
              "nodeType": "Block",
              "src": "11674:471:31",
              "statements": [
                {
                  "expression": {
                    "id": 10747,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10734,
                      "name": "_queryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10732,
                      "src": "11685:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 10736,
                            "name": "_getMsgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              10308
                            ],
                            "referencedDeclaration": 10308,
                            "src": "11722:13:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 10737,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11722:15:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "hexValue": "30",
                          "id": 10738,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11739:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        {
                          "arguments": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 10741,
                                "name": "_getMsgValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  10319
                                ],
                                "referencedDeclaration": 10319,
                                "src": "11762:12:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view returns (uint256)"
                                }
                              },
                              "id": 10742,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11762:14:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10740,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11755:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint72_$",
                              "typeString": "type(uint72)"
                            },
                            "typeName": {
                              "id": 10739,
                              "name": "uint72",
                              "nodeType": "ElementaryTypeName",
                              "src": "11755:6:31",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11755:22:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        {
                          "id": 10744,
                          "name": "_queryRAD",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10714,
                          "src": "11792:9:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        },
                        {
                          "id": 10745,
                          "name": "_querySLA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10717,
                          "src": "11816:9:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                            "typeString": "struct Witnet.QuerySLA memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          },
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          },
                          {
                            "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                            "typeString": "struct Witnet.QuerySLA memory"
                          }
                        ],
                        "id": 10735,
                        "name": "__queryData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11019,
                        "src": "11696:11:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint24_$_t_uint72_$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (address,uint24,uint72,Witnet.RadonHash,struct Witnet.QuerySLA memory) returns (uint256)"
                        }
                      },
                      "id": 10746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11696:140:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11685:151:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10748,
                  "nodeType": "ExpressionStatement",
                  "src": "11685:151:31"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10750,
                          "name": "_getMsgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10308
                          ],
                          "referencedDeclaration": 10308,
                          "src": "11952:13:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 10751,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11952:15:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10752,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10297
                          ],
                          "referencedDeclaration": 10297,
                          "src": "11982:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10753,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11982:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10754,
                          "name": "_getMsgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10319
                          ],
                          "referencedDeclaration": 10319,
                          "src": "12011:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10755,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12011:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 10761,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10732,
                                "src": "12067:8:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10760,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12060:6:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 10759,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "12060:6:31",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 10762,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12060:16:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 10756,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "12040:6:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 10757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12047:7:31",
                            "memberName": "QueryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37151,
                            "src": "12040:14:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                              "typeString": "type(Witnet.QueryId)"
                            }
                          },
                          "id": 10758,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "12055:4:31",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "12040:19:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                            "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                          }
                        },
                        "id": 10763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12040:37:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      },
                      {
                        "id": 10764,
                        "name": "_queryRAD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10714,
                        "src": "12092:9:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      },
                      {
                        "id": 10765,
                        "name": "_querySLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10717,
                        "src": "12117:9:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                          "typeString": "struct Witnet.QuerySLA memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        },
                        {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                          "typeString": "struct Witnet.QuerySLA memory"
                        }
                      ],
                      "id": 10749,
                      "name": "WitOracleQuery",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26836,
                      "src": "11923:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,Witnet.QueryId,Witnet.RadonHash,struct Witnet.QuerySLA memory)"
                      }
                    },
                    "id": 10766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11923:214:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10767,
                  "nodeType": "EmitStatement",
                  "src": "11918:219:31"
                }
              ]
            },
            "functionSelector": "a58f6803",
            "id": 10769,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10721,
                      "name": "_getMsgValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10319
                      ],
                      "referencedDeclaration": 10319,
                      "src": "11527:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 10722,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11527:14:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10724,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10297
                          ],
                          "referencedDeclaration": 10297,
                          "src": "11572:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10725,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11572:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10723,
                      "name": "estimateBaseFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10356,
                      "src": "11556:15:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view returns (uint256)"
                      }
                    },
                    "id": 10726,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11556:31:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 10727,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10720,
                  "name": "checkQueryReward",
                  "nameLocations": [
                    "11496:16:31"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 10153,
                  "src": "11496:16:31"
                },
                "nodeType": "ModifierInvocation",
                "src": "11496:102:31"
              },
              {
                "arguments": [
                  {
                    "id": 10729,
                    "name": "_querySLA",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10717,
                    "src": "11622:9:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                      "typeString": "struct Witnet.QuerySLA memory"
                    }
                  }
                ],
                "id": 10730,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10728,
                  "name": "checkQuerySLA",
                  "nameLocations": [
                    "11608:13:31"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 10167,
                  "src": "11608:13:31"
                },
                "nodeType": "ModifierInvocation",
                "src": "11608:24:31"
              }
            ],
            "name": "queryData",
            "nameLocation": "11327:9:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10719,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11454:8:31"
            },
            "parameters": {
              "id": 10718,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10714,
                  "mutability": "mutable",
                  "name": "_queryRAD",
                  "nameLocation": "11368:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10769,
                  "src": "11351:26:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 10713,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10712,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "11351:6:31",
                        "11358:9:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "11351:16:31"
                    },
                    "referencedDeclaration": 37153,
                    "src": "11351:16:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10717,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "11416:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10769,
                  "src": "11393:32:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 10716,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10715,
                      "name": "Witnet.QuerySLA",
                      "nameLocations": [
                        "11393:6:31",
                        "11400:8:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "11393:15:31"
                    },
                    "referencedDeclaration": 37373,
                    "src": "11393:15:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11336:100:31"
            },
            "returnParameters": {
              "id": 10733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10732,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "11659:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10769,
                  "src": "11651:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11651:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11650:18:31"
            },
            "scope": 11059,
            "src": "11318:827:31",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26788
            ],
            "body": {
              "id": 10835,
              "nodeType": "Block",
              "src": "12713:444:31",
              "statements": [
                {
                  "expression": {
                    "id": 10814,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10800,
                      "name": "_queryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10798,
                      "src": "12724:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 10802,
                            "name": "_queryCallback",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10778,
                            "src": "12761:14:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                              "typeString": "struct Witnet.QueryCallback memory"
                            }
                          },
                          "id": 10803,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "12776:8:31",
                          "memberName": "consumer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37337,
                          "src": "12761:23:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "expression": {
                            "id": 10804,
                            "name": "_queryCallback",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10778,
                            "src": "12799:14:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                              "typeString": "struct Witnet.QueryCallback memory"
                            }
                          },
                          "id": 10805,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "12814:8:31",
                          "memberName": "gasLimit",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37339,
                          "src": "12799:23:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 10808,
                                "name": "_getMsgValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  10319
                                ],
                                "referencedDeclaration": 10319,
                                "src": "12844:12:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view returns (uint256)"
                                }
                              },
                              "id": 10809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12844:14:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10807,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "12837:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint72_$",
                              "typeString": "type(uint72)"
                            },
                            "typeName": {
                              "id": 10806,
                              "name": "uint72",
                              "nodeType": "ElementaryTypeName",
                              "src": "12837:6:31",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10810,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12837:22:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        {
                          "id": 10811,
                          "name": "_queryRAD",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10772,
                          "src": "12874:9:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        },
                        {
                          "id": 10812,
                          "name": "_querySLA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10775,
                          "src": "12898:9:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                            "typeString": "struct Witnet.QuerySLA memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          },
                          {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          },
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          },
                          {
                            "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                            "typeString": "struct Witnet.QuerySLA memory"
                          }
                        ],
                        "id": 10801,
                        "name": "__queryData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11019,
                        "src": "12735:11:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint24_$_t_uint72_$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (address,uint24,uint72,Witnet.RadonHash,struct Witnet.QuerySLA memory) returns (uint256)"
                        }
                      },
                      "id": 10813,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12735:183:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12724:194:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10815,
                  "nodeType": "ExpressionStatement",
                  "src": "12724:194:31"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10817,
                          "name": "_getMsgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10308
                          ],
                          "referencedDeclaration": 10308,
                          "src": "12963:13:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 10818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12963:15:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10819,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10297
                          ],
                          "referencedDeclaration": 10297,
                          "src": "12993:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10820,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12993:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10821,
                          "name": "_getMsgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10319
                          ],
                          "referencedDeclaration": 10319,
                          "src": "13022:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13022:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 10828,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10798,
                                "src": "13078:8:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10827,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "13071:6:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 10826,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "13071:6:31",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 10829,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13071:16:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 10823,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "13051:6:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 10824,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13058:7:31",
                            "memberName": "QueryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37151,
                            "src": "13051:14:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                              "typeString": "type(Witnet.QueryId)"
                            }
                          },
                          "id": 10825,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13066:4:31",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "13051:19:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                            "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                          }
                        },
                        "id": 10830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13051:37:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      },
                      {
                        "id": 10831,
                        "name": "_queryRAD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10772,
                        "src": "13104:9:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      },
                      {
                        "id": 10832,
                        "name": "_querySLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10775,
                        "src": "13129:9:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                          "typeString": "struct Witnet.QuerySLA memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        },
                        {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                          "typeString": "struct Witnet.QuerySLA memory"
                        }
                      ],
                      "id": 10816,
                      "name": "WitOracleQuery",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26836,
                      "src": "12934:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,Witnet.QueryId,Witnet.RadonHash,struct Witnet.QuerySLA memory)"
                      }
                    },
                    "id": 10833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12934:215:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10834,
                  "nodeType": "EmitStatement",
                  "src": "12929:220:31"
                }
              ]
            },
            "functionSelector": "3b3195b7",
            "id": 10836,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 10782,
                      "name": "_getMsgValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10319
                      ],
                      "referencedDeclaration": 10319,
                      "src": "12434:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 10783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12434:14:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10785,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10297
                          ],
                          "referencedDeclaration": 10297,
                          "src": "12509:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12509:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "id": 10787,
                          "name": "_queryCallback",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10778,
                          "src": "12544:14:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                            "typeString": "struct Witnet.QueryCallback memory"
                          }
                        },
                        "id": 10788,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "12559:8:31",
                        "memberName": "gasLimit",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37339,
                        "src": "12544:23:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "id": 10784,
                      "name": "estimateBaseFeeWithCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10402,
                      "src": "12463:27:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint24) view returns (uint256)"
                      }
                    },
                    "id": 10789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12463:119:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 10790,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10781,
                  "name": "checkQueryReward",
                  "nameLocations": [
                    "12403:16:31"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 10153,
                  "src": "12403:16:31"
                },
                "nodeType": "ModifierInvocation",
                "src": "12403:190:31"
              },
              {
                "arguments": [
                  {
                    "id": 10792,
                    "name": "_querySLA",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10775,
                    "src": "12617:9:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                      "typeString": "struct Witnet.QuerySLA memory"
                    }
                  }
                ],
                "id": 10793,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10791,
                  "name": "checkQuerySLA",
                  "nameLocations": [
                    "12603:13:31"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 10167,
                  "src": "12603:13:31"
                },
                "nodeType": "ModifierInvocation",
                "src": "12603:24:31"
              },
              {
                "arguments": [
                  {
                    "id": 10795,
                    "name": "_queryCallback",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10778,
                    "src": "12656:14:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                      "typeString": "struct Witnet.QueryCallback memory"
                    }
                  }
                ],
                "id": 10796,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10794,
                  "name": "checkQueryCallback",
                  "nameLocations": [
                    "12637:18:31"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 10129,
                  "src": "12637:18:31"
                },
                "nodeType": "ModifierInvocation",
                "src": "12637:34:31"
              }
            ],
            "name": "queryDataWithCallback",
            "nameLocation": "12165:21:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10780,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12361:8:31"
            },
            "parameters": {
              "id": 10779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10772,
                  "mutability": "mutable",
                  "name": "_queryRAD",
                  "nameLocation": "12218:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10836,
                  "src": "12201:26:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 10771,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10770,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "12201:6:31",
                        "12208:9:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "12201:16:31"
                    },
                    "referencedDeclaration": 37153,
                    "src": "12201:16:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10775,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "12266:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10836,
                  "src": "12243:32:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 10774,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10773,
                      "name": "Witnet.QuerySLA",
                      "nameLocations": [
                        "12243:6:31",
                        "12250:8:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "12243:15:31"
                    },
                    "referencedDeclaration": 37373,
                    "src": "12243:15:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10778,
                  "mutability": "mutable",
                  "name": "_queryCallback",
                  "nameLocation": "12318:14:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10836,
                  "src": "12290:42:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                    "typeString": "struct Witnet.QueryCallback"
                  },
                  "typeName": {
                    "id": 10777,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10776,
                      "name": "Witnet.QueryCallback",
                      "nameLocations": [
                        "12290:6:31",
                        "12297:13:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37340,
                      "src": "12290:20:31"
                    },
                    "referencedDeclaration": 37340,
                    "src": "12290:20:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QueryCallback_$37340_storage_ptr",
                      "typeString": "struct Witnet.QueryCallback"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12186:157:31"
            },
            "returnParameters": {
              "id": 10799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10798,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "12698:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10836,
                  "src": "12690:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10797,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12690:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12689:18:31"
            },
            "scope": 11059,
            "src": "12156:1001:31",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26794
            ],
            "body": {
              "id": 10901,
              "nodeType": "Block",
              "src": "13553:490:31",
              "statements": [
                {
                  "assignments": [
                    10853
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10853,
                      "mutability": "mutable",
                      "name": "__query",
                      "nameLocation": "13595:7:31",
                      "nodeType": "VariableDeclaration",
                      "scope": 10901,
                      "src": "13564:38:31",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                        "typeString": "struct WitOracleDataLib.Query"
                      },
                      "typeName": {
                        "id": 10852,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 10851,
                          "name": "WitOracleDataLib.Query",
                          "nameLocations": [
                            "13564:16:31",
                            "13581:5:31"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 18074,
                          "src": "13564:22:31"
                        },
                        "referencedDeclaration": 18074,
                        "src": "13564:22:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10858,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 10856,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10839,
                        "src": "13632:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 10854,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "13605:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10855,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13622:9:31",
                      "memberName": "seekQuery",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18181,
                      "src": "13605:26:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Query_$18074_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitOracleDataLib.Query storage pointer)"
                      }
                    },
                    "id": 10857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13605:36:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Query storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13564:77:31"
                },
                {
                  "assignments": [
                    10860
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10860,
                      "mutability": "mutable",
                      "name": "_newReward",
                      "nameLocation": "13660:10:31",
                      "nodeType": "VariableDeclaration",
                      "scope": 10901,
                      "src": "13652:18:31",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10859,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13652:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10871,
                  "initialValue": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 10864,
                                "name": "__query",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10853,
                                "src": "13717:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                                  "typeString": "struct WitOracleDataLib.Query storage pointer"
                                }
                              },
                              "id": 10865,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13725:6:31",
                              "memberName": "reward",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 18070,
                              "src": "13717:14:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                                "typeString": "Witnet.QueryEvmReward"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                                "typeString": "Witnet.QueryEvmReward"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 10861,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "13688:6:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 10862,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13695:14:31",
                              "memberName": "QueryEvmReward",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37147,
                              "src": "13688:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                                "typeString": "type(Witnet.QueryEvmReward)"
                              }
                            },
                            "id": 10863,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "13710:6:31",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "13688:28:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryEvmReward_$37147_$returns$_t_uint72_$",
                              "typeString": "function (Witnet.QueryEvmReward) pure returns (uint72)"
                            }
                          },
                          "id": 10866,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13688:44:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 10867,
                            "name": "_getMsgValue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              10319
                            ],
                            "referencedDeclaration": 10319,
                            "src": "13752:12:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 10868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13752:14:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13688:78:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 10870,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "13673:104:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13652:125:31"
                },
                {
                  "expression": {
                    "id": 10883,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 10872,
                        "name": "__query",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10853,
                        "src": "13788:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query storage pointer"
                        }
                      },
                      "id": 10874,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "13796:6:31",
                      "memberName": "reward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18070,
                      "src": "13788:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                        "typeString": "Witnet.QueryEvmReward"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 10880,
                              "name": "_newReward",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10860,
                              "src": "13839:10:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10879,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "13832:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint72_$",
                              "typeString": "type(uint72)"
                            },
                            "typeName": {
                              "id": 10878,
                              "name": "uint72",
                              "nodeType": "ElementaryTypeName",
                              "src": "13832:6:31",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10881,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13832:18:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10875,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "13805:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "13812:14:31",
                          "memberName": "QueryEvmReward",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37147,
                          "src": "13805:21:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                            "typeString": "type(Witnet.QueryEvmReward)"
                          }
                        },
                        "id": 10877,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "13827:4:31",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "13805:26:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint72_$returns$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                          "typeString": "function (uint72) pure returns (Witnet.QueryEvmReward)"
                        }
                      },
                      "id": 10882,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13805:46:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                        "typeString": "Witnet.QueryEvmReward"
                      }
                    },
                    "src": "13788:63:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                      "typeString": "Witnet.QueryEvmReward"
                    }
                  },
                  "id": 10884,
                  "nodeType": "ExpressionStatement",
                  "src": "13788:63:31"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 10891,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10839,
                                "src": "13930:8:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 10890,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "13923:6:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 10889,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "13923:6:31",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 10892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13923:16:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 10886,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "13903:6:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 10887,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13910:7:31",
                            "memberName": "QueryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37151,
                            "src": "13903:14:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                              "typeString": "type(Witnet.QueryId)"
                            }
                          },
                          "id": 10888,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "13918:4:31",
                          "memberName": "wrap",
                          "nodeType": "MemberAccess",
                          "src": "13903:19:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                            "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                          }
                        },
                        "id": 10893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13903:37:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10894,
                          "name": "_getMsgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10308
                          ],
                          "referencedDeclaration": 10308,
                          "src": "13955:13:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 10895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13955:15:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 10896,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10297
                          ],
                          "referencedDeclaration": 10297,
                          "src": "13985:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 10897,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13985:14:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 10898,
                        "name": "_newReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10860,
                        "src": "14014:10:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                          "typeString": "Witnet.QueryId"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10885,
                      "name": "WitOracleQueryUpgrade",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26848,
                      "src": "13867:21:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (Witnet.QueryId,address,uint256,uint256)"
                      }
                    },
                    "id": 10899,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13867:168:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10900,
                  "nodeType": "EmitStatement",
                  "src": "13862:173:31"
                }
              ]
            },
            "documentation": {
              "id": 10837,
              "nodeType": "StructuredDocumentation",
              "src": "13166:214:31",
              "text": "Increments the reward of a previously posted request by adding the transaction value to it.\n @dev Fails if the `_queryId` is not in 'Posted' status.\n @param _queryId The unique query identifier."
            },
            "functionSelector": "ec5946db",
            "id": 10902,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 10843,
                    "name": "_queryId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10839,
                    "src": "13511:8:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "expression": {
                      "expression": {
                        "id": 10844,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "13521:6:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 10845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13528:11:31",
                      "memberName": "QueryStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37335,
                      "src": "13521:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_QueryStatus_$37335_$",
                        "typeString": "type(enum Witnet.QueryStatus)"
                      }
                    },
                    "id": 10846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "13540:6:31",
                    "memberName": "Posted",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 37329,
                    "src": "13521:25:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$37335",
                      "typeString": "enum Witnet.QueryStatus"
                    }
                  }
                ],
                "id": 10847,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 10842,
                  "name": "inStatus",
                  "nameLocations": [
                    "13502:8:31"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 10192,
                  "src": "13502:8:31"
                },
                "nodeType": "ModifierInvocation",
                "src": "13502:45:31"
              }
            ],
            "name": "upgradeQueryEvmReward",
            "nameLocation": "13395:21:31",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10841,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13478:8:31"
            },
            "parameters": {
              "id": 10840,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10839,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "13425:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 10902,
                  "src": "13417:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10838,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13417:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13416:18:31"
            },
            "returnParameters": {
              "id": 10848,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13553:0:31"
            },
            "scope": 11059,
            "src": "13386:657:31",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 11018,
              "nodeType": "Block",
              "src": "14586:683:31",
              "statements": [
                {
                  "expression": {
                    "id": 10924,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 10919,
                      "name": "_queryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10917,
                      "src": "14597:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 10923,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "14608:20:31",
                      "subExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 10920,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11058,
                            "src": "14611:9:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$18055_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitOracleDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 10921,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14611:11:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                            "typeString": "struct WitOracleDataLib.Storage storage pointer"
                          }
                        },
                        "id": 10922,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "memberLocation": "14623:5:31",
                        "memberName": "nonce",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18037,
                        "src": "14611:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "14597:31:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10925,
                  "nodeType": "ExpressionStatement",
                  "src": "14597:31:31"
                },
                {
                  "assignments": [
                    10930
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10930,
                      "mutability": "mutable",
                      "name": "__query",
                      "nameLocation": "14670:7:31",
                      "nodeType": "VariableDeclaration",
                      "scope": 11018,
                      "src": "14639:38:31",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                        "typeString": "struct WitOracleDataLib.Query"
                      },
                      "typeName": {
                        "id": 10929,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 10928,
                          "name": "WitOracleDataLib.Query",
                          "nameLocations": [
                            "14639:16:31",
                            "14656:5:31"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 18074,
                          "src": "14639:22:31"
                        },
                        "referencedDeclaration": 18074,
                        "src": "14639:22:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 10935,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 10933,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10917,
                        "src": "14707:8:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 10931,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "14680:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 10932,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14697:9:31",
                      "memberName": "seekQuery",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18181,
                      "src": "14680:26:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Query_$18074_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitOracleDataLib.Query storage pointer)"
                      }
                    },
                    "id": 10934,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14680:36:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Query storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14639:77:31"
                },
                {
                  "expression": {
                    "id": 10948,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 10936,
                        "name": "__query",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10930,
                        "src": "14727:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query storage pointer"
                        }
                      },
                      "id": 10938,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "14735:10:31",
                      "memberName": "checkpoint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18073,
                      "src": "14727:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                        "typeString": "Witnet.BlockNumber"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 10944,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967292,
                                "src": "14779:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 10945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14785:6:31",
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "src": "14779:12:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10943,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "14772:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint64_$",
                              "typeString": "type(uint64)"
                            },
                            "typeName": {
                              "id": 10942,
                              "name": "uint64",
                              "nodeType": "ElementaryTypeName",
                              "src": "14772:6:31",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14772:20:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10939,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "14748:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14755:11:31",
                          "memberName": "BlockNumber",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37145,
                          "src": "14748:18:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_BlockNumber_$37145_$",
                            "typeString": "type(Witnet.BlockNumber)"
                          }
                        },
                        "id": 10941,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "14767:4:31",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "14748:23:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                          "typeString": "function (uint64) pure returns (Witnet.BlockNumber)"
                        }
                      },
                      "id": 10947,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14748:45:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                        "typeString": "Witnet.BlockNumber"
                      }
                    },
                    "src": "14727:66:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "id": 10949,
                  "nodeType": "ExpressionStatement",
                  "src": "14727:66:31"
                },
                {
                  "expression": {
                    "id": 10968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 10950,
                        "name": "__query",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10930,
                        "src": "14804:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query storage pointer"
                        }
                      },
                      "id": 10952,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "14812:4:31",
                      "memberName": "uuid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18067,
                      "src": "14804:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                        "typeString": "Witnet.QueryUUID"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 10960,
                                  "name": "_queryId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10917,
                                  "src": "14875:8:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 10959,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "14868:6:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint64_$",
                                  "typeString": "type(uint64)"
                                },
                                "typeName": {
                                  "id": 10958,
                                  "name": "uint64",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14868:6:31",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 10961,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14868:16:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 10955,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "14848:6:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 10956,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14855:7:31",
                              "memberName": "QueryId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37151,
                              "src": "14848:14:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                "typeString": "type(Witnet.QueryId)"
                              }
                            },
                            "id": 10957,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "14863:4:31",
                            "memberName": "wrap",
                            "nodeType": "MemberAccess",
                            "src": "14848:19:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                              "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                            }
                          },
                          "id": 10962,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14848:37:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                            "typeString": "Witnet.QueryId"
                          }
                        },
                        {
                          "id": 10963,
                          "name": "_radonHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10911,
                          "src": "14901:10:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        },
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 10964,
                              "name": "_querySLA",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10914,
                              "src": "14927:9:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                "typeString": "struct Witnet.QuerySLA memory"
                              }
                            },
                            "id": 10965,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14937:7:31",
                            "memberName": "hashify",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 38761,
                            "src": "14927:17:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_QuerySLA_$37373_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_QuerySLA_$37373_memory_ptr_$",
                              "typeString": "function (struct Witnet.QuerySLA memory) pure returns (bytes32)"
                            }
                          },
                          "id": 10966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14927:19:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                            "typeString": "Witnet.QueryId"
                          },
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 10953,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "14819:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 10954,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14826:7:31",
                        "memberName": "hashify",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 38740,
                        "src": "14819:14:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_RadonHash_$37153_$_t_bytes32_$returns$_t_userDefinedValueType$_QueryUUID_$37149_$",
                          "typeString": "function (Witnet.QueryId,Witnet.RadonHash,bytes32) view returns (Witnet.QueryUUID)"
                        }
                      },
                      "id": 10967,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14819:138:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                        "typeString": "Witnet.QueryUUID"
                      }
                    },
                    "src": "14804:153:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryUUID_$37149",
                      "typeString": "Witnet.QueryUUID"
                    }
                  },
                  "id": 10969,
                  "nodeType": "ExpressionStatement",
                  "src": "14804:153:31"
                },
                {
                  "expression": {
                    "id": 10978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 10970,
                        "name": "__query",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10930,
                        "src": "14968:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query storage pointer"
                        }
                      },
                      "id": 10972,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "14976:6:31",
                      "memberName": "reward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18070,
                      "src": "14968:14:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                        "typeString": "Witnet.QueryEvmReward"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 10976,
                          "name": "_evmReward",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10908,
                          "src": "15012:10:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10973,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "14985:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10974,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14992:14:31",
                          "memberName": "QueryEvmReward",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37147,
                          "src": "14985:21:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                            "typeString": "type(Witnet.QueryEvmReward)"
                          }
                        },
                        "id": 10975,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "15007:4:31",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "14985:26:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint72_$returns$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                          "typeString": "function (uint72) pure returns (Witnet.QueryEvmReward)"
                        }
                      },
                      "id": 10977,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14985:38:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                        "typeString": "Witnet.QueryEvmReward"
                      }
                    },
                    "src": "14968:55:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                      "typeString": "Witnet.QueryEvmReward"
                    }
                  },
                  "id": 10979,
                  "nodeType": "ExpressionStatement",
                  "src": "14968:55:31"
                },
                {
                  "expression": {
                    "id": 10986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "expression": {
                          "id": 10980,
                          "name": "__query",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10930,
                          "src": "15034:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                            "typeString": "struct WitOracleDataLib.Query storage pointer"
                          }
                        },
                        "id": 10983,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15042:7:31",
                        "memberName": "request",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18058,
                        "src": "15034:15:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_QueryRequest_$18087_storage",
                          "typeString": "struct WitOracleDataLib.QueryRequest storage ref"
                        }
                      },
                      "id": 10984,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "15050:9:31",
                      "memberName": "requester",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18076,
                      "src": "15034:25:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 10985,
                      "name": "_requester",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10904,
                      "src": "15062:10:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15034:38:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10987,
                  "nodeType": "ExpressionStatement",
                  "src": "15034:38:31"
                },
                {
                  "expression": {
                    "id": 10998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "expression": {
                          "id": 10988,
                          "name": "__query",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10930,
                          "src": "15083:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                            "typeString": "struct WitOracleDataLib.Query storage pointer"
                          }
                        },
                        "id": 10991,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15091:7:31",
                        "memberName": "request",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18058,
                        "src": "15083:15:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_QueryRequest_$18087_storage",
                          "typeString": "struct WitOracleDataLib.QueryRequest storage ref"
                        }
                      },
                      "id": 10992,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "15099:9:31",
                      "memberName": "radonHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18084,
                      "src": "15083:25:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 10996,
                          "name": "_radonHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10911,
                          "src": "15135:10:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                            "typeString": "Witnet.RadonHash"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 10993,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "15111:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 10994,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "15118:9:31",
                          "memberName": "RadonHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37153,
                          "src": "15111:16:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                            "typeString": "type(Witnet.RadonHash)"
                          }
                        },
                        "id": 10995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "15128:6:31",
                        "memberName": "unwrap",
                        "nodeType": "MemberAccess",
                        "src": "15111:23:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                          "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                        }
                      },
                      "id": 10997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15111:35:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "15083:63:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 10999,
                  "nodeType": "ExpressionStatement",
                  "src": "15083:63:31"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    },
                    "id": 11002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 11000,
                      "name": "_callbackGas",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10906,
                      "src": "15161:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 11001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15176:1:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15161:16:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11011,
                  "nodeType": "IfStatement",
                  "src": "15157:64:31",
                  "trueBody": {
                    "expression": {
                      "id": 11009,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "expression": {
                          "expression": {
                            "id": 11003,
                            "name": "__query",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10930,
                            "src": "15179:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                              "typeString": "struct WitOracleDataLib.Query storage pointer"
                            }
                          },
                          "id": 11006,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "15187:7:31",
                          "memberName": "request",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18058,
                          "src": "15179:15:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_QueryRequest_$18087_storage",
                            "typeString": "struct WitOracleDataLib.QueryRequest storage ref"
                          }
                        },
                        "id": 11007,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "memberLocation": "15195:11:31",
                        "memberName": "callbackGas",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18078,
                        "src": "15179:27:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "id": 11008,
                        "name": "_callbackGas",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10906,
                        "src": "15209:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "src": "15179:42:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "id": 11010,
                    "nodeType": "ExpressionStatement",
                    "src": "15179:42:31"
                  }
                },
                {
                  "expression": {
                    "id": 11016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 11012,
                        "name": "__query",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10930,
                        "src": "15232:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query storage pointer"
                        }
                      },
                      "id": 11014,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "15240:9:31",
                      "memberName": "slaParams",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18064,
                      "src": "15232:17:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_QuerySLA_$37373_storage",
                        "typeString": "struct Witnet.QuerySLA storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 11015,
                      "name": "_querySLA",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10914,
                      "src": "15252:9:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                        "typeString": "struct Witnet.QuerySLA memory"
                      }
                    },
                    "src": "15232:29:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage",
                      "typeString": "struct Witnet.QuerySLA storage ref"
                    }
                  },
                  "id": 11017,
                  "nodeType": "ExpressionStatement",
                  "src": "15232:29:31"
                }
              ]
            },
            "id": 11019,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__queryData",
            "nameLocation": "14306:11:31",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10904,
                  "mutability": "mutable",
                  "name": "_requester",
                  "nameLocation": "14340:10:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11019,
                  "src": "14332:18:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10903,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14332:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10906,
                  "mutability": "mutable",
                  "name": "_callbackGas",
                  "nameLocation": "14373:12:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11019,
                  "src": "14365:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 10905,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "14365:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10908,
                  "mutability": "mutable",
                  "name": "_evmReward",
                  "nameLocation": "14408:10:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11019,
                  "src": "14400:18:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint72",
                    "typeString": "uint72"
                  },
                  "typeName": {
                    "id": 10907,
                    "name": "uint72",
                    "nodeType": "ElementaryTypeName",
                    "src": "14400:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint72",
                      "typeString": "uint72"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10911,
                  "mutability": "mutable",
                  "name": "_radonHash",
                  "nameLocation": "14450:10:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11019,
                  "src": "14433:27:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 10910,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10909,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "14433:6:31",
                        "14440:9:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "14433:16:31"
                    },
                    "referencedDeclaration": 37153,
                    "src": "14433:16:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10914,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "14498:9:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11019,
                  "src": "14475:32:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                    "typeString": "struct Witnet.QuerySLA"
                  },
                  "typeName": {
                    "id": 10913,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 10912,
                      "name": "Witnet.QuerySLA",
                      "nameLocations": [
                        "14475:6:31",
                        "14482:8:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37373,
                      "src": "14475:15:31"
                    },
                    "referencedDeclaration": 37373,
                    "src": "14475:15:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_QuerySLA_$37373_storage_ptr",
                      "typeString": "struct Witnet.QuerySLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14317:201:31"
            },
            "returnParameters": {
              "id": 10918,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10917,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "14571:8:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11019,
                  "src": "14563:16:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10916,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14563:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14562:18:31"
            },
            "scope": 11059,
            "src": "14297:972:31",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 11027,
              "nodeType": "Block",
              "src": "15336:61:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 11023,
                          "name": "_revertUnhandledExceptionReason",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11046,
                          "src": "15355:31:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_string_memory_ptr_$",
                            "typeString": "function () pure returns (string memory)"
                          }
                        },
                        "id": 11024,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15355:33:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 11022,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26513,
                      "src": "15347:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 11025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15347:42:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11026,
                  "nodeType": "ExpressionStatement",
                  "src": "15347:42:31"
                }
              ]
            },
            "id": 11028,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_revertUnhandledException",
            "nameLocation": "15286:25:31",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11020,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15311:2:31"
            },
            "returnParameters": {
              "id": 11021,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15336:0:31"
            },
            "scope": 11059,
            "src": "15277:120:31",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 11045,
              "nodeType": "Block",
              "src": "15494:141:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 11038,
                                  "name": "WitOracleDataLib",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20110,
                                  "src": "15555:16:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                    "typeString": "type(library WitOracleDataLib)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                    "typeString": "type(library WitOracleDataLib)"
                                  }
                                ],
                                "id": 11037,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "15550:4:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 11039,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15550:22:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_WitOracleDataLib_$20110",
                                "typeString": "type(library WitOracleDataLib)"
                              }
                            },
                            "id": 11040,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "15573:4:31",
                            "memberName": "name",
                            "nodeType": "MemberAccess",
                            "src": "15550:27:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "hexValue": "3a20756e68616e646c656420617373657274696f6e",
                            "id": 11041,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15592:23:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f8fa18d02d3b000652ed8c67af593a68d22044c405602d1b221b59198f24cc7f",
                              "typeString": "literal_string \": unhandled assertion\""
                            },
                            "value": ": unhandled assertion"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f8fa18d02d3b000652ed8c67af593a68d22044c405602d1b221b59198f24cc7f",
                              "typeString": "literal_string \": unhandled assertion\""
                            }
                          ],
                          "expression": {
                            "id": 11035,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "15519:3:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 11036,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "15523:12:31",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "15519:16:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 11042,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15519:107:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 11034,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "15512:6:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 11033,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "15512:6:31",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 11043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15512:115:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 11032,
                  "id": 11044,
                  "nodeType": "Return",
                  "src": "15505:122:31"
                }
              ]
            },
            "id": 11046,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_revertUnhandledExceptionReason",
            "nameLocation": "15414:31:31",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11029,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15445:2:31"
            },
            "returnParameters": {
              "id": 11032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11031,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 11046,
                  "src": "15479:13:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11030,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "15479:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15478:15:31"
            },
            "scope": 11059,
            "src": "15405:230:31",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 11057,
              "nodeType": "Block",
              "src": "15817:49:31",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 11053,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "15835:16:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 11054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15852:4:31",
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18116,
                      "src": "15835:21:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$18055_storage_ptr_$",
                        "typeString": "function () pure returns (struct WitOracleDataLib.Storage storage pointer)"
                      }
                    },
                    "id": 11055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15835:23:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Storage storage pointer"
                    }
                  },
                  "functionReturnParameters": 11052,
                  "id": 11056,
                  "nodeType": "Return",
                  "src": "15828:30:31"
                }
              ]
            },
            "documentation": {
              "id": 11047,
              "nodeType": "StructuredDocumentation",
              "src": "15643:77:31",
              "text": "Returns storage pointer to contents of 'WitOracleDataLib.Storage' struct."
            },
            "id": 11058,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__storage",
            "nameLocation": "15735:9:31",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11048,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15744:2:31"
            },
            "returnParameters": {
              "id": 11052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11051,
                  "mutability": "mutable",
                  "name": "_ptr",
                  "nameLocation": "15811:4:31",
                  "nodeType": "VariableDeclaration",
                  "scope": 11058,
                  "src": "15778:37:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                    "typeString": "struct WitOracleDataLib.Storage"
                  },
                  "typeName": {
                    "id": 11050,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 11049,
                      "name": "WitOracleDataLib.Storage",
                      "nameLocations": [
                        "15778:16:31",
                        "15795:7:31"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 18055,
                      "src": "15778:24:31"
                    },
                    "referencedDeclaration": 18055,
                    "src": "15778:24:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Storage"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15777:39:31"
            },
            "scope": 11059,
            "src": "15726:140:31",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 11060,
        "src": "424:15449:31",
        "usedErrors": [
          26521
        ],
        "usedEvents": [
          26543,
          26836,
          26848,
          26856,
          26863,
          26875,
          26891,
          45721,
          45727
        ]
      }
    ],
    "src": "35:15840:31"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.481Z",
  "devdoc": {
    "author": "The Witnet Foundation",
    "kind": "dev",
    "methods": {
      "deleteQuery(uint256)": {
        "details": "Fails if the query is not in a final status, or not called from the actual requester.",
        "params": {
          "queryId": "The unique query identifier."
        }
      },
      "estimateBaseFee(uint256)": {
        "params": {
          "_evmGasPrice": "Expected gas price to pay upon posting the data request."
        }
      },
      "estimateBaseFeeWithCallback(uint256,uint24)": {
        "params": {
          "_evmCallbackGasLimit": "Maximum gas to be spent when reporting the data request result.",
          "_evmGasPrice": "Expected gas price to pay upon posting the data request."
        }
      },
      "estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))": {
        "details": "The extra fee gets calculated in proportion to:",
        "params": {
          "_evmGasPrice": "Tentative EVM gas price at the moment the query result is ready.",
          "_evmWitPrice": "Tentative nanoWit price in Wei at the moment the query is solved on the Wit/Oracle blockchain.",
          "_querySLA": "The query SLA data security parameters as required for the Wit/Oracle blockchain. "
        }
      },
      "getQueryRequest(uint64)": {
        "params": {
          "_queryId": "The unique query identifier."
        }
      },
      "getQueryResponse(uint64)": {
        "details": "Fails if the `_queryId` is not in 'Reported' status.",
        "params": {
          "_queryId": "The unique query identifier"
        }
      },
      "upgradeQueryEvmReward(uint256)": {
        "details": "Fails if the `_queryId` is not in 'Posted' status.",
        "params": {
          "_queryId": "The unique query identifier."
        }
      }
    },
    "title": "Queriable WitOracle base implementation.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "WitOracleQuery(address,uint256,uint256,uint64,bytes32,(uint16,uint16,uint64))": {
        "notice": "Emitted every time a new query containing some verified data request is posted to the WitOracle."
      },
      "WitOracleQueryReport(uint64,uint256)": {
        "notice": "Emitted when a query with no callback gets reported into the WRB."
      },
      "WitOracleQueryReportDelivery(uint64,address,uint256,uint256)": {
        "notice": "Emitted when a query with a callback gets successfully reported into the WRB."
      },
      "WitOracleQueryUpgrade(uint64,address,uint256,uint256)": {
        "notice": "Emitted when the reward of some not-yet reported query gets upgraded."
      },
      "WitOracleResportDeliveryFailed(uint64,address,uint256,uint256,string,bytes)": {
        "notice": "Emitted when a query with a callback cannot get reported into the WRB."
      }
    },
    "kind": "user",
    "methods": {
      "channel()": {
        "notice": "Uniquely identifies the WitOracle instance and the chain on which it's deployed."
      },
      "class()": {
        "notice": "Returns the name of the actual contract implementing the logic of this Witnet appliance."
      },
      "deleteQuery(uint256)": {
        "notice": "Removes all query data from storage. Pays back reward on expired queries."
      },
      "estimateBaseFee(uint256)": {
        "notice": "Estimate the minimum reward required for posting a data request."
      },
      "estimateBaseFeeWithCallback(uint256,uint24)": {
        "notice": "Estimate the minimum reward required for posting a data request with a callback."
      },
      "estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))": {
        "notice": "Estimate the extra reward (i.e. over the base fee) to be paid when posting a newdata query in order to avoid getting provable \"too low incentives\" results fromthe Wit/Oracle blockchain. "
      },
      "getNextQueryId()": {
        "notice": "Returns next query id to be generated by the Witnet Request Board."
      },
      "getQuery(uint64)": {
        "notice": "Gets the whole Query data contents, if any, no matter its current status."
      },
      "getQueryEvmReward(uint256)": {
        "notice": "Gets the current EVM reward the report can claim, if not done yet."
      },
      "getQueryRequest(uint64)": {
        "notice": "Retrieves the RAD hash and SLA parameters of the given query."
      },
      "getQueryResponse(uint64)": {
        "notice": "Retrieves the Witnet-provable result, and metadata, to a previously posted request.    "
      },
      "getQueryResultTrails(uint256)": {
        "notice": "Gets query's result back tracing trails"
      },
      "getQueryStatus(uint256)": {
        "notice": "Gets current status of given query."
      },
      "parseDataReport((bytes32,bytes32,(uint16,uint16,uint64),uint64,bytes),bytes)": {
        "notice": "Verify the data report (as provided by Wit/Kermit API) is well-formed and authentic, returning the parsed Witnet.DataResult if so, or reverting otherwise."
      },
      "pushDataReport((bytes32,bytes32,(uint16,uint16,uint64),uint64,bytes),bytes)": {
        "notice": "Same as `parseDataReport` but on certain implementations it may store roll-up information  that will contribute to reduce the cost of verifying and/or rolling-up future data reports. Emits `DataReport` if report is authentic. "
      },
      "registry()": {
        "notice": "Returns the WitOracleRadonRegistry in which Witnet-compliant Radon requestscan be formally verified and forever registered as a away to let smart contracts and users to track actual data sources and offchain computations applied on data updates safely reported from the Wit/Oracle blockchain. "
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      },
      "upgradeQueryEvmReward(uint256)": {
        "notice": "Increments the reward of a previously posted request by adding the transaction value to it."
      }
    },
    "version": 1
  }
}