{
  "contractName": "WitnetOracleTrustableBase",
  "abi": [
    {
      "inputs": [],
      "name": "EmptyBuffer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "range",
          "type": "uint256"
        }
      ],
      "name": "IndexOutOfBounds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidLengthEncoding",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ReentrancyGuardReentrantCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "read",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "UnexpectedMajorType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "unexpected",
          "type": "uint256"
        }
      ],
      "name": "UnsupportedMajorType",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "BatchReportError",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Received",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "reporters",
          "type": "address[]"
        }
      ],
      "name": "ReportersSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "reporters",
          "type": "address[]"
        }
      ],
      "name": "ReportersUnset",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "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": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "baseAddr",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "baseCodehash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "versionTag",
          "type": "string"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "witnetSLA",
          "type": "tuple"
        }
      ],
      "name": "WitnetQuery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryResponse",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackGas",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryResponseDelivered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackActualGas",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evmCallbackRevertReason",
          "type": "string"
        }
      ],
      "name": "WitnetQueryResponseDeliveryFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryRewardUpgraded",
      "type": "event"
    },
    {
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "base",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "codehash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_codehash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currency",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deployer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isUpgradable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "registry",
      "outputs": [
        {
          "internalType": "contract WitnetRequestBytecodes",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    },
    {
      "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": "factory",
      "outputs": [
        {
          "internalType": "contract WitnetRequestFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_gasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint24",
          "name": "_callbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "estimateBaseFeeWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_initData",
          "type": "bytes"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        }
      ],
      "name": "isUpgradableFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_gasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "_resultMaxSize",
          "type": "uint16"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "gasPrice",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "radHash",
          "type": "bytes32"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "fetchQueryResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "reporter",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "finality",
              "type": "uint64"
            },
            {
              "internalType": "uint32",
              "name": "resultTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "resultTallyHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct WitnetV2.Response",
          "name": "_response",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQuery",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint24",
                  "name": "gasCallback",
                  "type": "uint24"
                },
                {
                  "internalType": "uint72",
                  "name": "evmReward",
                  "type": "uint72"
                },
                {
                  "internalType": "bytes",
                  "name": "witnetBytecode",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "witnetRAD",
                  "type": "bytes32"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "committeeSize",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint64",
                      "name": "witnessingFeeNanoWit",
                      "type": "uint64"
                    }
                  ],
                  "internalType": "struct WitnetV2.RadonSLA",
                  "name": "witnetSLA",
                  "type": "tuple"
                }
              ],
              "internalType": "struct WitnetV2.Request",
              "name": "request",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "reporter",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "finality",
                  "type": "uint64"
                },
                {
                  "internalType": "uint32",
                  "name": "resultTimestamp",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes32",
                  "name": "resultTallyHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "resultCborBytes",
                  "type": "bytes"
                }
              ],
              "internalType": "struct WitnetV2.Response",
              "name": "response",
              "type": "tuple"
            }
          ],
          "internalType": "struct WitnetV2.Query",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryEvmReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "gasCallback",
              "type": "uint24"
            },
            {
              "internalType": "uint72",
              "name": "evmReward",
              "type": "uint72"
            },
            {
              "internalType": "bytes",
              "name": "witnetBytecode",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "witnetRAD",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "committeeSize",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "witnessingFeeNanoWit",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetV2.RadonSLA",
              "name": "witnetSLA",
              "type": "tuple"
            }
          ],
          "internalType": "struct WitnetV2.Request",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "reporter",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "finality",
              "type": "uint64"
            },
            {
              "internalType": "uint32",
              "name": "resultTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "resultTallyHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct WitnetV2.Response",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResponseStatus",
      "outputs": [
        {
          "internalType": "enum WitnetV2.ResponseStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultCborBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultError",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultErrorCodes",
              "name": "code",
              "type": "uint8"
            },
            {
              "internalType": "string",
              "name": "reason",
              "type": "string"
            }
          ],
          "internalType": "struct Witnet.ResultError",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatus",
      "outputs": [
        {
          "internalType": "enum WitnetV2.QueryStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_witnetQueryIds",
          "type": "uint256[]"
        }
      ],
      "name": "getQueryStatusBatch",
      "outputs": [
        {
          "internalType": "enum WitnetV2.QueryStatus[]",
          "name": "_status",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNextQueryId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "postRequest",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_queryUnverifiedBytecode",
          "type": "bytes"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "_querySLA",
          "type": "tuple"
        },
        {
          "internalType": "uint24",
          "name": "_queryCallbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "postRequestWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "_querySLA",
          "type": "tuple"
        },
        {
          "internalType": "uint24",
          "name": "_queryCallbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "postRequestWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        }
      ],
      "name": "upgradeQueryEvmReward",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_witnetQueryIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_txGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_nanoWitPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateReportEarnings",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_revenues",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_expenses",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_queryIds",
          "type": "uint256[]"
        }
      ],
      "name": "extractWitnetDataRequests",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "_bytecodes",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_witnetQueryResultTallyHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_witnetQueryResultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "reportResult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_witnetQueryId",
          "type": "uint256"
        },
        {
          "internalType": "uint32",
          "name": "_witnetQueryResultTimestamp",
          "type": "uint32"
        },
        {
          "internalType": "bytes32",
          "name": "_witnetQueryResultTallyHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_witnetQueryResultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "reportResult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "queryId",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "queryResultTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "queryResultTallyHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "queryResultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct IWitnetOracleReporter.BatchResult[]",
          "name": "_batchResults",
          "type": "tuple[]"
        }
      ],
      "name": "reportResultBatch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_batchReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_reporter",
          "type": "address"
        }
      ],
      "name": "isReporter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_reporters",
          "type": "address[]"
        }
      ],
      "name": "setReporters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_exReporters",
          "type": "address[]"
        }
      ],
      "name": "unsetReporters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EmptyBuffer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"range\",\"type\":\"uint256\"}],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unexpected\",\"type\":\"uint256\"}],\"name\":\"UnsupportedMajorType\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"queryId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"BatchReportError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"reporters\",\"type\":\"address[]\"}],\"name\":\"ReportersSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"reporters\",\"type\":\"address[]\"}],\"name\":\"ReportersUnset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"baseAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"baseCodehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"versionTag\",\"type\":\"string\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"witnetSLA\",\"type\":\"tuple\"}],\"name\":\"WitnetQuery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackGas\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryResponseDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackActualGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"evmCallbackRevertReason\",\"type\":\"string\"}],\"name\":\"WitnetQueryResponseDeliveryFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryRewardUpgraded\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"base\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"codehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codehash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"_resultMaxSize\",\"type\":\"uint16\"}],\"name\":\"estimateBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"radHash\",\"type\":\"bytes32\"}],\"name\":\"estimateBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"_callbackGasLimit\",\"type\":\"uint24\"}],\"name\":\"estimateBaseFeeWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_witnetQueryIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_txGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nanoWitPrice\",\"type\":\"uint256\"}],\"name\":\"estimateReportEarnings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_revenues\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_expenses\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_queryIds\",\"type\":\"uint256[]\"}],\"name\":\"extractWitnetDataRequests\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_bytecodes\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract WitnetRequestFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"fetchQueryResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"finality\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"resultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct WitnetV2.Response\",\"name\":\"_response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextQueryId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQuery\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"gasCallback\",\"type\":\"uint24\"},{\"internalType\":\"uint72\",\"name\":\"evmReward\",\"type\":\"uint72\"},{\"internalType\":\"bytes\",\"name\":\"witnetBytecode\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"witnetRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"witnetSLA\",\"type\":\"tuple\"}],\"internalType\":\"struct WitnetV2.Request\",\"name\":\"request\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"finality\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"resultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct WitnetV2.Response\",\"name\":\"response\",\"type\":\"tuple\"}],\"internalType\":\"struct WitnetV2.Query\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryEvmReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"gasCallback\",\"type\":\"uint24\"},{\"internalType\":\"uint72\",\"name\":\"evmReward\",\"type\":\"uint72\"},{\"internalType\":\"bytes\",\"name\":\"witnetBytecode\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"witnetRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"witnetSLA\",\"type\":\"tuple\"}],\"internalType\":\"struct WitnetV2.Request\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"finality\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"resultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"resultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct WitnetV2.Response\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResponseStatus\",\"outputs\":[{\"internalType\":\"enum WitnetV2.ResponseStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultCborBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultError\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultErrorCodes\",\"name\":\"code\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"internalType\":\"struct Witnet.ResultError\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"getQueryStatus\",\"outputs\":[{\"internalType\":\"enum WitnetV2.QueryStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_witnetQueryIds\",\"type\":\"uint256[]\"}],\"name\":\"getQueryStatusBatch\",\"outputs\":[{\"internalType\":\"enum WitnetV2.QueryStatus[]\",\"name\":\"_status\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_initData\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_reporter\",\"type\":\"address\"}],\"name\":\"isReporter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUpgradable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"}],\"name\":\"isUpgradableFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"}],\"name\":\"postRequest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_queryUnverifiedBytecode\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"},{\"internalType\":\"uint24\",\"name\":\"_queryCallbackGasLimit\",\"type\":\"uint24\"}],\"name\":\"postRequestWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_queryRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"},{\"internalType\":\"uint24\",\"name\":\"_queryCallbackGasLimit\",\"type\":\"uint24\"}],\"name\":\"postRequestWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract WitnetRequestBytecodes\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_witnetQueryResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_witnetQueryResultCborBytes\",\"type\":\"bytes\"}],\"name\":\"reportResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_witnetQueryResultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_witnetQueryResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_witnetQueryResultCborBytes\",\"type\":\"bytes\"}],\"name\":\"reportResult\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"queryId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"queryResultTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"queryResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"queryResultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct IWitnetOracleReporter.BatchResult[]\",\"name\":\"_batchResults\",\"type\":\"tuple[]\"}],\"name\":\"reportResultBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchReward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_reporters\",\"type\":\"address[]\"}],\"name\":\"setReporters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_exReporters\",\"type\":\"address[]\"}],\"name\":\"unsetReporters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_witnetQueryId\",\"type\":\"uint256\"}],\"name\":\"upgradeQueryEvmReward\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"The Witnet Foundation\",\"details\":\"This contract enables posting requests that Witnet bridges will insert into the Witnet network. The result of the requests will be posted back to this contract by the bridge nodes too.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address,address,bytes32,string)\":{\"params\":{\"baseAddr\":\"The address of the new implementation contract.\",\"baseCodehash\":\"The EVM-codehash of the new implementation contract.\",\"from\":\"The address who ordered the upgrading. Namely, the WRB operator in \\\"trustable\\\" implementations.\",\"versionTag\":\"Ascii-encoded version literal with which the implementation deployer decided to tag it.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"base()\":{\"details\":\"Retrieves base contract. Differs from address(this) when called via delegate-proxy pattern.\"},\"codehash()\":{\"details\":\"Retrieves the immutable codehash of this contract, even if invoked as delegatecall.\"},\"estimateBaseFee(uint256,bytes32)\":{\"details\":\"Underestimates if the size of returned data is greater than `resultMaxSize`. \",\"params\":{\"gasPrice\":\"Expected gas price to pay upon posting the data request.\",\"radHash\":\"The hash of some Witnet Data Request previously posted in the WitnetRequestBytecodes registry.\"}},\"estimateBaseFee(uint256,uint16)\":{\"details\":\"Underestimates if the size of returned data is greater than `_resultMaxSize`. \",\"params\":{\"_gasPrice\":\"Expected gas price to pay upon posting the data request.\",\"_resultMaxSize\":\"Maximum expected size of returned data (in bytes).\"}},\"estimateBaseFeeWithCallback(uint256,uint24)\":{\"params\":{\"_callbackGasLimit\":\"Maximum gas to be spent when reporting the data request result.\",\"_gasPrice\":\"Expected gas price to pay upon posting the data request.\"}},\"extractWitnetDataRequests(uint256[])\":{\"details\":\"Returns empty buffer if the query does not exist.\",\"params\":{\"_queryIds\":\"Query identifies.\"}},\"fetchQueryResponse(uint256)\":{\"details\":\"Fails if the `_witnetQueryId` is not in 'Reported' status, or called from an address different tothe one that actually posted the given request.\",\"params\":{\"_witnetQueryId\":\"The unique query identifier.\"}},\"getQueryRequest(uint256)\":{\"params\":{\"_witnetQueryId\":\"The unique query identifier.\"}},\"getQueryResponse(uint256)\":{\"details\":\"Fails if the `_witnetQueryId` is not in 'Reported' status.\",\"params\":{\"_witnetQueryId\":\"The unique query identifier\"}},\"getQueryResponseStatus(uint256)\":{\"params\":{\"_witnetQueryId\":\"The unique query identifier.\"}},\"getQueryResultCborBytes(uint256)\":{\"params\":{\"_witnetQueryId\":\"The unique query identifier.\"}},\"getQueryResultError(uint256)\":{\"params\":{\"_witnetQueryId\":\"The unique query identifier.\"}},\"initialize(bytes)\":{\"details\":\"Must fail when trying to upgrade to same logic contract more than once.\"},\"isReporter(address)\":{\"params\":{\"_reporter\":\"The address to be checked.\"}},\"isUpgradable()\":{\"details\":\"Determines whether the logic of this contract is potentially upgradable.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"postRequest(bytes32,(uint8,uint64))\":{\"details\":\"Reasons to fail:- the RAD hash was not previously verified by the WitnetRequestBytecodes registry;- invalid SLA parameters were provided;- insufficient value is paid as reward.\",\"params\":{\"_queryRAD\":\"The RAD hash of the data request to be solved by Witnet.\",\"_querySLA\":\"The data query SLA to be fulfilled on the Witnet blockchain.\"},\"returns\":{\"_witnetQueryId\":\"Unique query identifier.\"}},\"postRequestWithCallback(bytes,(uint8,uint64),uint24)\":{\"details\":\"Reasons to fail:- the caller is not a contract implementing the IWitnetConsumer interface;- the provided bytecode is empty;- invalid SLA parameters were provided;- zero callback gas limit is provided;- insufficient value is paid as reward.\",\"params\":{\"_queryCallbackGasLimit\":\"Maximum gas to be spent when reporting the data request result.\",\"_querySLA\":\"The data query SLA to be fulfilled on the Witnet blockchain.\",\"_queryUnverifiedBytecode\":\"The (unverified) bytecode containing the actual data request to be solved by the Witnet blockchain.\"},\"returns\":{\"_witnetQueryId\":\"Unique query identifier.\"}},\"postRequestWithCallback(bytes32,(uint8,uint64),uint24)\":{\"details\":\"Reasons to fail:- the caller is not a contract implementing the IWitnetConsumer interface;- the RAD hash was not previously verified by the WitnetRequestBytecodes registry;- invalid SLA parameters were provided;- zero callback gas limit is provided;- insufficient value is paid as reward.\",\"params\":{\"_queryCallbackGasLimit\":\"Maximum gas to be spent when reporting the data request result.\",\"_queryRAD\":\"The RAD hash of the data request to be solved by Witnet.\",\"_querySLA\":\"The data query SLA to be fulfilled on the Witnet blockchain.\"},\"returns\":{\"_witnetQueryId\":\"Unique query identifier.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"reportResult(uint256,bytes32,bytes)\":{\"details\":\"Will assume `block.timestamp` as the timestamp at which the request was solved.Fails if:- the `_witnetQueryId` is not in 'Posted' status.- provided `_witnetQueryResultTallyHash` is zero;- length of provided `_result` is zero.\",\"params\":{\"_witnetQueryId\":\"The unique identifier of the data request.\",\"_witnetQueryResultCborBytes\":\"The result itself as bytes.\",\"_witnetQueryResultTallyHash\":\"Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\"}},\"reportResult(uint256,uint32,bytes32,bytes)\":{\"details\":\"Fails if:- called from unauthorized address;- the `_witnetQueryId` is not in 'Posted' status.- provided `_witnetQueryResultTallyHash` is zero;- length of provided `_witnetQueryResultCborBytes` is zero.\",\"params\":{\"_witnetQueryId\":\"The unique query identifier\",\"_witnetQueryResultCborBytes\":\"The result itself as bytes.\",\"_witnetQueryResultTallyHash\":\"Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\",\"_witnetQueryResultTimestamp\":\"Timestamp at which the reported value was captured by the Witnet blockchain. \"}},\"reportResultBatch((uint256,uint32,bytes32,bytes)[])\":{\"details\":\"Fails only if called from unauthorized address.\",\"params\":{\"_batchResults\":\"Array of BatchResult structs, every one containing:         - unique query identifier;         - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;         - hash of the corresponding data request tx at the Witnet side-chain level;         - data request result in raw bytes.\"}},\"setReporters(address[])\":{\"details\":\"Can only be called from the owner address.Emits the `ReportersSet` event. \",\"params\":{\"_reporters\":\"List of addresses to be added to the active reporters control list.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"unsetReporters(address[])\":{\"details\":\"Can only be called from the owner address.Emits the `ReportersUnset` event. \",\"params\":{\"_exReporters\":\"List of addresses to be added to the active reporters control list.\"}},\"upgradeQueryEvmReward(uint256)\":{\"details\":\"Fails if the `_witnetQueryId` is not in 'Posted' status.\",\"params\":{\"_witnetQueryId\":\"The unique query identifier.\"}}},\"title\":\"Witnet Request Board \\\"trustable\\\" base implementation contract.\",\"version\":1},\"userdoc\":{\"events\":{\"Upgraded(address,address,bytes32,string)\":{\"notice\":\"Emitted every time the contract gets upgraded.\"},\"WitnetQuery(uint256,uint256,(uint8,uint64))\":{\"notice\":\"Emitted every time a new query containing some verified data request is posted to the WRB.\"},\"WitnetQueryResponse(uint256,uint256)\":{\"notice\":\"Emitted when a query with no callback gets reported into the WRB.\"},\"WitnetQueryResponseDelivered(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a query with a callback gets successfully reported into the WRB.\"},\"WitnetQueryResponseDeliveryFailed(uint256,bytes,uint256,uint256,string)\":{\"notice\":\"Emitted when a query with a callback cannot get reported into the WRB.\"},\"WitnetQueryRewardUpgraded(uint256,uint256)\":{\"notice\":\"Emitted when the reward of some not-yet reported query is upgraded.\"}},\"kind\":\"user\",\"methods\":{\"estimateBaseFee(uint256,bytes32)\":{\"notice\":\"Estimate the minimum reward required for posting a data request.\"},\"estimateBaseFee(uint256,uint16)\":{\"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.\"},\"estimateReportEarnings(uint256[],bytes,uint256,uint256)\":{\"notice\":\"Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on queries providing no actual earnings.\"},\"extractWitnetDataRequests(uint256[])\":{\"notice\":\"Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\"},\"fetchQueryResponse(uint256)\":{\"notice\":\"Retrieves copy of all response data related to a previously posted request, removing the whole query from storage.\"},\"getNextQueryId()\":{\"notice\":\"Returns next query id to be generated by the Witnet Request Board.\"},\"getQuery(uint256)\":{\"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(uint256)\":{\"notice\":\"Retrieves the RAD hash and SLA parameters of the given query.\"},\"getQueryResponse(uint256)\":{\"notice\":\"Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \"},\"getQueryResponseStatus(uint256)\":{\"notice\":\"Returns query's result current status from a requester's point of view:- 0 => Void: the query is either non-existent or deleted;- 1 => Awaiting: the query has not yet been reported;- 2 => Ready: the query has been succesfully solved;- 3 => Error: the query couldn't get solved due to some issue.\"},\"getQueryResultCborBytes(uint256)\":{\"notice\":\"Retrieves the CBOR-encoded buffer containing the Witnet-provided result to the given query.\"},\"getQueryResultError(uint256)\":{\"notice\":\"Gets error code identifying some possible failure on the resolution of the given query.\"},\"getQueryStatus(uint256)\":{\"notice\":\"Gets current status of given query.\"},\"initialize(bytes)\":{\"notice\":\"Re-initialize contract's storage context upon a new upgrade from a proxy.\"},\"isReporter(address)\":{\"notice\":\"Tells whether given address is included in the active reporters control list.\"},\"isUpgradableFrom(address)\":{\"notice\":\"Tells whether provided address could eventually upgrade the contract.\"},\"postRequest(bytes32,(uint8,uint64))\":{\"notice\":\"Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the reporter who relays back the Witnet-provable result to this request.\"},\"postRequestWithCallback(bytes,(uint8,uint64),uint24)\":{\"notice\":\"Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reporteddirectly to the requesting contract. If the report callback fails for any reason, a `WitnetQueryResponseDeliveryFailed`event will be triggered, and the Witnet audit trail will be saved in storage, but not so the CBOR-encoded result.\"},\"postRequestWithCallback(bytes32,(uint8,uint64),uint24)\":{\"notice\":\"Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reporteddirectly to the requesting contract. If the report callback fails for any reason, an `WitnetQueryResponseDeliveryFailed`will be triggered, and the Witnet audit trail will be saved in storage, but not so the actual CBOR-encoded result.\"},\"reportResult(uint256,bytes32,bytes)\":{\"notice\":\"Reports the Witnet-provable result to a previously posted request. \"},\"reportResult(uint256,uint32,bytes32,bytes)\":{\"notice\":\"Reports the Witnet-provable result to a previously posted request.\"},\"reportResultBatch((uint256,uint32,bytes32,bytes)[])\":{\"notice\":\"Reports Witnet-provided results to multiple requests within a single EVM tx.Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\"},\"setReporters(address[])\":{\"notice\":\"Adds given addresses to the active reporters control list.\"},\"unsetReporters(address[])\":{\"notice\":\"Removes given addresses from the active reporters control list.\"},\"upgradeQueryEvmReward(uint256)\":{\"notice\":\"Increments the reward of a previously posted request by adding the transaction value to it.\"},\"version()\":{\"notice\":\"Retrieves human-readable version tag of current implementation.\"}},\"notice\":\"Contract to bridge requests to Witnet Decentralized Oracle Network.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/defaults/WitnetOracleTrustableBase.sol\":\"WitnetOracleTrustableBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"project:/contracts/WitnetOracle.sol\":{\"keccak256\":\"0x84ef8d2ebcba273e4bc23a5ee414a1213df55d1b4e496197a146031fea3a4874\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4a6e31964ed08c4c9dfe5279b4ffe9eeba6e759f15901e080e174e98e96a7f5\",\"dweb:/ipfs/QmTghzVFf2EHnfnHejgFGRBjanXYcstK9ftVaYmHWJfk8w\"]},\"project:/contracts/WitnetRequestBytecodes.sol\":{\"keccak256\":\"0x2a79d919dd79c0e3f857e6bee08368ad0b463188aced4a52de29270ed0f5f3d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://290d6013ee9f75fedbbb7726527a637ea2ae7a5da0ad118ecc43b298846f0bb0\",\"dweb:/ipfs/QmU8AZtPyctrrvxdmH297p595ZMS6DgcD6djSFKNxAqYMs\"]},\"project:/contracts/WitnetRequestFactory.sol\":{\"keccak256\":\"0x3c66f27d7c1db0e662c37d98005c4cbd871ceb75e97079d7bf673fb75d59c858\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52adb318b870d0825718125e94fdbdd0e968ced09926420e2543b0ca4c6eb579\",\"dweb:/ipfs/QmYack87Q2UTfQb8KLLEPFBrMJgN2o6PaPqPNSc95McPVH\"]},\"project:/contracts/core/WitnetProxy.sol\":{\"keccak256\":\"0x2b2f56fc69bf0e01f6f1062202d1682cd394fa3b3d9ff2f8f833ab51c9e866cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8017f76a71e4a52a5a5e249081c92510bac5b91f03f727e66ff4406238521337\",\"dweb:/ipfs/QmdWcPAL3MGtxGdpX5CMfgzz4YzxYEeCiFRoGHVCr8rLEL\"]},\"project:/contracts/core/WitnetUpgradableBase.sol\":{\"keccak256\":\"0x9cea47781e0005266e14fadf8d1ee565d0814d4d51b30dced11bdee37b663060\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb1f843f53c693f4b5a8f32249ac2eb93095671b99c90aa7c6d335eb7153e827\",\"dweb:/ipfs/QmSLvVGCcg2FZVWPB82yVb57SFixkuDm2BqjvgzJpnYfZp\"]},\"project:/contracts/core/defaults/WitnetOracleTrustableBase.sol\":{\"keccak256\":\"0xeb14d9ac86e9983b41cc3a307acd4e6546c9c3f790234ca1c208aa4c189a27df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73c7f71f22a0cf9e70681641b131ba42233c6bd03c4170d5ac153153de206c04\",\"dweb:/ipfs/QmPMKe45EGWbUoDPTF2Y8VDZ8Q3eEfbJFHt8DW9Y5x6NYn\"]},\"project:/contracts/data/WitnetOracleDataLib.sol\":{\"keccak256\":\"0x03c8b61605f0c5324047aa99c896fe189933e3e9a59b070b9b3ea6141f7db960\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cedd0416337f718a44bbbaf53efa99ba490f7de1e6ab45f6bdf29e03082aa29d\",\"dweb:/ipfs/Qmb8RUaZEFX5CvE1VTYpTrm1EhM62gAUcZ4dGt3w39gZBA\"]},\"project:/contracts/interfaces/IWitnetConsumer.sol\":{\"keccak256\":\"0xf90fbcf0a59428c0ac13a3903214656060a95175adfdef8c11a7e16675b849e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2606640d3f343051ea18dfb8e136dfdb73ceecd8016c82ddb73d67ad39a30e0\",\"dweb:/ipfs/QmTADVW4M8pge6pGfenFAauEDk4yZEy78o5ksZiKGwP3DT\"]},\"project:/contracts/interfaces/IWitnetOracle.sol\":{\"keccak256\":\"0x5dbb04fce5e05675325232a735c46617378982b48dac2138aca0c6cc95e6e4d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7447a70455478239500e16aebe5dce6676dc86307d22f662761d8e9f7c5d1276\",\"dweb:/ipfs/QmVkvA4Mt6G1JXxE8ebxKGAjT1WvNbp5QMKg9sUKdrJjhv\"]},\"project:/contracts/interfaces/IWitnetOracleEvents.sol\":{\"keccak256\":\"0x0442f474f253dc1f6bd6a4f153c3adb2abe5f6f0f24c76d1baf666185e61e659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://535e8efcfc5693669d9bd2b6f62e6fc65aca19b7de355a27152e4362b410540d\",\"dweb:/ipfs/QmVZRXgku1cZewhoucebaiBKAyUjF2dmEzYrzGvjPzbwN9\"]},\"project:/contracts/interfaces/IWitnetOracleReporter.sol\":{\"keccak256\":\"0xf4726c5c522b99ce01c2c870c259ebb8dc1563a25df3d715ed78cff89a8bb122\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11d4d7205c416fc2927856c2ab64a7d2d5374900c6ad41320f512a0f2e17f215\",\"dweb:/ipfs/QmW8gmJ5rkd4K7ahPQ6KuCQ5wdnhoZJTpSL5iPkZcg2dAe\"]},\"project:/contracts/interfaces/IWitnetRequestBoardAdminACLs.sol\":{\"keccak256\":\"0xf7dccb4e47d281ce229a9dc219fb2b30dea26f6ad80225f21c75b103d5ab1230\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://814f304ff435f64bbcac9ac512ca636c3245f522f87285909c9a9e0ec6dc5368\",\"dweb:/ipfs/QmXtmoYRgm2iXQmLUmVoRz8d5PNqrZXid4SgX4BoDs8rcm\"]},\"project:/contracts/interfaces/IWitnetRequestBytecodes.sol\":{\"keccak256\":\"0x8da168bee9a78442216965976b1f29087f760f37dcb09337283242599ed1cbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e120623262ee0559913bdae56c0a7921147dfe08ada7ea81061b14e2fc38c5e1\",\"dweb:/ipfs/Qmbxe8XRrH6ZjJHiR6YYzcZV1jnSWwo9iBYz5r6GJ6To5G\"]},\"project:/contracts/interfaces/IWitnetRequestFactory.sol\":{\"keccak256\":\"0x3b19ec4a976745ba2646e7e1886d647ef30ad678460a712c93bbfb4405b57f1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa759ae15b7d4da622a81d50933474910959ac490d8b63ea2e7ed8608859a9c9\",\"dweb:/ipfs/QmRckCu7eBBP5fn9ff6djs7VbdhFc7sxYb2yqDr4go66jV\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetErrorsLib.sol\":{\"keccak256\":\"0x6cc28a70034f65099ec7e69d03a6c9cb643a77032c0e6d76532b77b036ef8436\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44eff62b48c4daf5606fae9b04dca6201af4336909d5966c2a2503c866b9efb0\",\"dweb:/ipfs/QmSc4qNo2ymtCevvgDKESYuVi1JD7PCWbMKfDoEhNwj4aS\"]},\"project:/contracts/libs/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]},\"project:/contracts/patterns/Ownable.sol\":{\"keccak256\":\"0x494bda32f9a218d9c33ea82112129c0933ab52f57eabfbf0d14a8742a3370800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c4cf04ebb052fed9d15cf93ff4523955ee311aa4425ee85f0e80b4489c94e76\",\"dweb:/ipfs/QmfMf4WD7woTaQSTbJxxoan2aXSeY7ovY5NoipSBw5rMPK\"]},\"project:/contracts/patterns/Ownable2Step.sol\":{\"keccak256\":\"0x7033d8133957a291cf9b8be30bfc4b95e6414a20995911d1b5df8ea149580604\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e20a079adc224113306392d27e0cf202c6c4a7678c4705fd3bbbca99c1e9b816\",\"dweb:/ipfs/QmWrFv2SbSokhrWhwL94sW5x1HyT7rX5f4Scowe4bWHHqu\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x83401b23b1c144561e674e86738e0d907c8fa15d90d79254415b3f5f215035c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e031f9a24c7030cd2d160a64a581fd3a69a06d7dc71bcf704b48f391c3d63fc6\",\"dweb:/ipfs/QmVpX6PdfgPGJZp3W5H4CGqVUqmNx9ttb4V5cz3YgBTypQ\"]},\"project:/contracts/patterns/Proxiable.sol\":{\"keccak256\":\"0x86032205378fed9ed2bf155eed8ce4bdbb13b7f5960850c6d50954a38b61a3d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f89978eda4244a13f42a6092a94ac829bb3e38c92d77d4978b9f32894b187a63\",\"dweb:/ipfs/Qmbc1XaFCvLm3Sxvh7tP29Ug32jBGy3avsCqBGAptxs765\"]},\"project:/contracts/patterns/ReentrancyGuard.sol\":{\"keccak256\":\"0x1470caf4bd78b79f706e28a8a85c95a6e13ec33eda04275e5da84464130831e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c974fb4dc29718a84f9ab5fa3f8c25c7f889050a38445e16c3ead5ff9d4b4bab\",\"dweb:/ipfs/QmbuGjkSjngbTZMRPijL9p56fP9cK5jMnWsFmvYAQj3qAY\"]},\"project:/contracts/patterns/Upgradeable.sol\":{\"keccak256\":\"0xbeb025c71f037acb1a668174eb6930631bf397129beb825f2660e5d8cf19614f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6ce4dcd500093ae069d35b91829ccb471e1ca33ed0851fb053fbfe76c78aba\",\"dweb:/ipfs/QmT7huvCFS6bHDxt7HhEogJmyvYNbeb6dFTJudsVSX6nEs\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.7.0 <0.9.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"../WitnetUpgradableBase.sol\";\r\nimport \"../../WitnetOracle.sol\";\r\nimport \"../../WitnetRequestFactory.sol\";\r\nimport \"../../data/WitnetOracleDataLib.sol\";\r\nimport \"../../interfaces/IWitnetOracleReporter.sol\";\r\nimport \"../../interfaces/IWitnetRequestBoardAdminACLs.sol\";\r\nimport \"../../interfaces/IWitnetConsumer.sol\";\r\nimport \"../../libs/WitnetErrorsLib.sol\";\r\nimport \"../../patterns/Payable.sol\";\r\n\r\n/// @title Witnet Request Board \"trustable\" base implementation contract.\r\n/// @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\r\n/// @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\r\n/// The result of the requests will be posted back to this contract by the bridge nodes too.\r\n/// @author The Witnet Foundation\r\nabstract contract WitnetOracleTrustableBase\r\n    is \r\n        WitnetUpgradableBase,\r\n        WitnetOracle,\r\n        IWitnetOracleReporter,\r\n        IWitnetRequestBoardAdminACLs,\r\n        Payable \r\n{\r\n    using Witnet for bytes;\r\n    using Witnet for Witnet.Result;\r\n    using WitnetCBOR for WitnetCBOR.CBOR;\r\n    using WitnetV2 for WitnetV2.RadonSLA;\r\n    using WitnetV2 for WitnetV2.Request;\r\n    using WitnetV2 for WitnetV2.Response;\r\n\r\n    bytes4 public immutable override specs = type(IWitnetOracle).interfaceId;\r\n    WitnetRequestBytecodes immutable public override registry;\r\n    \r\n    WitnetRequestFactory immutable private __factory;\r\n\r\n    modifier checkCallbackRecipient(address _addr, uint24 _callbackGasLimit) {\r\n        _require(\r\n            _addr.code.length > 0 && IWitnetConsumer(_addr).reportableFrom(address(this)) && _callbackGasLimit > 0,\r\n            \"invalid callback\"\r\n        ); _;\r\n    }\r\n\r\n    modifier checkReward(uint256 _baseFee) {\r\n        _require(\r\n            _getMsgValue() >= _baseFee, \r\n            \"insufficient reward\"\r\n        ); \r\n        _require(\r\n            _getMsgValue() <= _baseFee * 10,\r\n            \"too much reward\"\r\n        );\r\n        _;\r\n    }\r\n\r\n    modifier checkSLA(WitnetV2.RadonSLA calldata sla) {\r\n        _require(\r\n            WitnetV2.isValid(sla), \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, WitnetV2.QueryStatus _status) {\r\n      if (WitnetOracleDataLib.seekQueryStatus(_queryId) != _status) {\r\n        _revert(WitnetOracleDataLib.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 == WitnetOracleDataLib.seekQueryRequest(_queryId).requester, \r\n            \"not the requester\"\r\n        ); _;\r\n    }\r\n\r\n    /// Asserts the caller is authorized as a reporter\r\n    modifier onlyReporters {\r\n        _require(\r\n            __storage().reporters[msg.sender],\r\n            \"unauthorized reporter\"\r\n        );\r\n        _;\r\n    } \r\n    \r\n    constructor(\r\n            WitnetRequestFactory _factory,\r\n            WitnetRequestBytecodes _registry,\r\n            bool _upgradable,\r\n            bytes32 _versionTag,\r\n            address _currency\r\n        )\r\n        Ownable(address(msg.sender))\r\n        Payable(_currency)\r\n        WitnetUpgradableBase(\r\n            _upgradable,\r\n            _versionTag,\r\n            \"io.witnet.proxiable.board\"\r\n        )\r\n    {\r\n        __factory = _factory;\r\n        registry = _registry;\r\n    }\r\n\r\n    receive() external payable { \r\n        _revert(\"no transfers accepted\");\r\n    }\r\n\r\n    /// @dev Provide backwards compatibility for dapps bound to versions <= 0.6.1\r\n    /// @dev (i.e. calling methods in IWitnetOracle)\r\n    /// @dev (Until 'function ... abi(...)' modifier is allegedly supported in solc versions >= 0.9.1)\r\n    /* solhint-disable payable-fallback */\r\n    /* solhint-disable no-complex-fallback */\r\n    fallback() override external { \r\n        _revert(string(abi.encodePacked(\r\n            \"not implemented: 0x\",\r\n            Witnet.toHexString(uint8(bytes1(msg.sig))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 8))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 16))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 24)))\r\n        )));\r\n    }\r\n\r\n    function channel() virtual override public view returns (bytes4) {\r\n        return bytes4(keccak256(abi.encode(address(this), block.chainid)));\r\n    }\r\n\r\n    function class()\r\n        public view\r\n        virtual override(WitnetOracle, WitnetUpgradableBase) \r\n        returns (string memory)\r\n    {\r\n        return type(WitnetOracleTrustableBase).name;\r\n    }\r\n\r\n    function factory() virtual override public view returns (WitnetRequestFactory) {\r\n        return __factory;\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- Yet to be implemented virtual methods ----------------------------------------------------------------------\r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request.\r\n    /// @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \r\n    /// @param _gasPrice Expected gas price to pay upon posting the data request.\r\n    /// @param _resultMaxSize Maximum expected size of returned data (in bytes).\r\n    function estimateBaseFee(uint256 _gasPrice, uint16 _resultMaxSize) virtual public view returns (uint256); \r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request with a callback.\r\n    /// @param _gasPrice Expected gas price to pay upon posting the data request.\r\n    /// @param _callbackGasLimit Maximum gas to be spent when reporting the data request result.\r\n    function estimateBaseFeeWithCallback(uint256 _gasPrice, uint24 _callbackGasLimit) virtual public view returns (uint256);\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- Overrides 'Upgradeable' ------------------------------------------------------------------------------------\r\n\r\n    /// @notice Re-initialize contract's storage context upon a new upgrade from a proxy.\r\n    /// @dev Must fail when trying to upgrade to same logic contract more than once.\r\n    function initialize(bytes memory _initData)\r\n        public\r\n        override\r\n    {\r\n        address _owner = owner();\r\n        address[] memory _newReporters;\r\n\r\n        if (_owner == address(0)) {\r\n            // get owner (and reporters) from _initData\r\n            bytes memory _newReportersRaw;\r\n            (_owner, _newReportersRaw) = abi.decode(_initData, (address, bytes));\r\n            _transferOwnership(_owner);\r\n            _newReporters = abi.decode(_newReportersRaw, (address[]));\r\n        } else {\r\n            // only owner can initialize:\r\n            _require(\r\n                msg.sender == _owner,\r\n                \"not the owner\"\r\n            );\r\n            // get reporters from _initData\r\n            _newReporters = abi.decode(_initData, (address[]));\r\n        }\r\n\r\n        if (\r\n            __proxiable().codehash != bytes32(0)\r\n                && __proxiable().codehash == codehash()\r\n        ) {\r\n            _revert(\"already upgraded\");\r\n        }\r\n        __proxiable().codehash = codehash();\r\n\r\n        _require(\r\n            address(__factory).code.length > 0,\r\n            \"inexistent factory\"\r\n        );\r\n        _require(\r\n            __factory.specs() == type(IWitnetRequestFactory).interfaceId, \r\n            \"uncompliant factory\"\r\n        );\r\n        _require(\r\n            address(__factory.witnet()) == address(this) \r\n                && address(__factory.registry()) == address(registry),\r\n            \"discordant factory\"\r\n        );\r\n\r\n        // Set reporters, if any\r\n        __setReporters(_newReporters);\r\n\r\n        emit Upgraded(_owner, base(), codehash(), version());\r\n    }\r\n\r\n    /// Tells whether provided address could eventually upgrade the contract.\r\n    function isUpgradableFrom(address _from) external view override returns (bool) {\r\n        return (\r\n            // false if the WRB is intrinsically not upgradable, or `_from` is no owner\r\n            isUpgradable()\r\n                && owner() == _from\r\n        );\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Partial implementation of IWitnetOracle --------------------------------------------------------------\r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request.\r\n    /// @dev Underestimates if the size of returned data is greater than `resultMaxSize`. \r\n    /// @param gasPrice Expected gas price to pay upon posting the data request.\r\n    /// @param radHash The hash of some Witnet Data Request previously posted in the WitnetRequestBytecodes registry.\r\n    function estimateBaseFee(uint256 gasPrice, bytes32 radHash)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        uint16 _resultMaxSize = registry.lookupRadonRequestResultMaxSize(radHash);\r\n        _require(\r\n            _resultMaxSize > 0, \r\n            \"invalid RAD\"\r\n        );\r\n        return estimateBaseFee(\r\n            gasPrice,\r\n            _resultMaxSize\r\n        );\r\n    }\r\n\r\n    /// Retrieves copy of all response data related to a previously posted request, removing the whole query from storage.\r\n    /// @dev Fails if the `_witnetQueryId` is not in 'Reported' status, or called from an address different to\r\n    /// @dev the one that actually posted the given request.\r\n    /// @param _witnetQueryId The unique query identifier.\r\n    function fetchQueryResponse(uint256 _witnetQueryId)\r\n        virtual override\r\n        external\r\n        inStatus(_witnetQueryId, WitnetV2.QueryStatus.Finalized)\r\n        onlyRequester(_witnetQueryId)\r\n        returns (WitnetV2.Response memory _response)\r\n    {\r\n        _response = WitnetOracleDataLib.seekQuery(_witnetQueryId).response;\r\n        delete __storage().queries[_witnetQueryId];\r\n    }\r\n\r\n    /// Gets the whole Query data contents, if any, no matter its current status.\r\n    function getQuery(uint256 _witnetQueryId)\r\n      public view\r\n      virtual override\r\n      returns (WitnetV2.Query memory)\r\n    {\r\n        return __storage().queries[_witnetQueryId];\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 _witnetQueryId) \r\n        external view \r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return __storage().queries[_witnetQueryId].request.evmReward;\r\n    }\r\n\r\n    /// @notice Retrieves the RAD hash and SLA parameters of the given query.\r\n    /// @param _witnetQueryId The unique query identifier.\r\n    function getQueryRequest(uint256 _witnetQueryId)\r\n        external view \r\n        override\r\n        returns (WitnetV2.Request memory)\r\n    {\r\n        return WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\r\n    }\r\n\r\n    /// Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \r\n    /// @dev Fails if the `_witnetQueryId` is not in 'Reported' status.\r\n    /// @param _witnetQueryId The unique query identifier\r\n    function getQueryResponse(uint256 _witnetQueryId)\r\n        public view\r\n        virtual override\r\n        returns (WitnetV2.Response memory)\r\n    {\r\n        return WitnetOracleDataLib.seekQueryResponse(_witnetQueryId);\r\n    }\r\n\r\n    /// @notice Returns query's result current status from a requester's point of view:\r\n    /// @notice   - 0 => Void: the query is either non-existent or deleted;\r\n    /// @notice   - 1 => Awaiting: the query has not yet been reported;\r\n    /// @notice   - 2 => Ready: the query has been succesfully solved;\r\n    /// @notice   - 3 => Error: the query couldn't get solved due to some issue.\r\n    /// @param _witnetQueryId The unique query identifier.\r\n    function getQueryResponseStatus(uint256 _witnetQueryId)\r\n        virtual override public view\r\n        returns (WitnetV2.ResponseStatus)\r\n    {\r\n        return WitnetOracleDataLib.seekQueryResponseStatus(_witnetQueryId);\r\n    }\r\n\r\n    /// @notice Retrieves the CBOR-encoded buffer containing the Witnet-provided result to the given query.\r\n    /// @param _witnetQueryId The unique query identifier.\r\n    function getQueryResultCborBytes(uint256 _witnetQueryId) \r\n        external view \r\n        virtual override\r\n        returns (bytes memory)\r\n    {\r\n        return WitnetOracleDataLib.seekQueryResponse(_witnetQueryId).resultCborBytes;\r\n    }\r\n\r\n    /// @notice Gets error code identifying some possible failure on the resolution of the given query.\r\n    /// @param _witnetQueryId The unique query identifier.\r\n    function getQueryResultError(uint256 _witnetQueryId)\r\n        virtual override \r\n        public view\r\n        returns (Witnet.ResultError memory)\r\n    {\r\n        WitnetV2.ResponseStatus _status = WitnetOracleDataLib.seekQueryResponseStatus(_witnetQueryId);\r\n        try WitnetErrorsLib.asResultError(_status, WitnetOracleDataLib.seekQueryResponse(_witnetQueryId).resultCborBytes)\r\n            returns (Witnet.ResultError memory _resultError)\r\n        {\r\n            return _resultError;\r\n        } \r\n        catch Error(string memory _reason) {\r\n            return Witnet.ResultError({\r\n                code: Witnet.ResultErrorCodes.Unknown,\r\n                reason: string(abi.encodePacked(\"WitnetErrorsLib: \", _reason))\r\n            });\r\n        }\r\n        catch (bytes memory) {\r\n            return Witnet.ResultError({\r\n                code: Witnet.ResultErrorCodes.Unknown,\r\n                reason: \"WitnetErrorsLib: assertion failed\"\r\n            });\r\n        }\r\n    }\r\n\r\n    /// Gets current status of given query.\r\n    function getQueryStatus(uint256 _witnetQueryId)\r\n        external view\r\n        override\r\n        returns (WitnetV2.QueryStatus)\r\n    {\r\n        return WitnetOracleDataLib.seekQueryStatus(_witnetQueryId);\r\n    }\r\n\r\n    function getQueryStatusBatch(uint256[] calldata _witnetQueryIds)\r\n        external view\r\n        override\r\n        returns (WitnetV2.QueryStatus[] memory _status)\r\n    {\r\n        _status = new WitnetV2.QueryStatus[](_witnetQueryIds.length);\r\n        for (uint _ix = 0; _ix < _witnetQueryIds.length; _ix ++) {\r\n            _status[_ix] = WitnetOracleDataLib.seekQueryStatus(_witnetQueryIds[_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 (uint256)\r\n    {\r\n        return __storage().nonce + 1;\r\n    }\r\n\r\n    /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and \r\n    /// @notice solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be \r\n    /// @notice transferred to the reporter who relays back the Witnet-provable result to this request.\r\n    /// @dev Reasons to fail:\r\n    /// @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\r\n    /// @dev - invalid SLA parameters were provided;\r\n    /// @dev - insufficient value is paid as reward.\r\n    /// @param _queryRAD The RAD hash of the data request to be solved by Witnet.\r\n    /// @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\r\n    /// @return _witnetQueryId Unique query identifier.\r\n    function postRequest(\r\n            bytes32 _queryRAD, \r\n            WitnetV2.RadonSLA calldata _querySLA\r\n        )\r\n        virtual override\r\n        external payable\r\n        checkReward(estimateBaseFee(_getGasPrice(), _queryRAD))\r\n        checkSLA(_querySLA)\r\n        returns (uint256 _witnetQueryId)\r\n    {\r\n        _witnetQueryId = __postRequest(_queryRAD, _querySLA, 0);\r\n        // Let Web3 observers know that a new request has been posted\r\n        emit WitnetQuery(\r\n            _witnetQueryId, \r\n            _getMsgValue(),\r\n            _querySLA\r\n        );\r\n    }\r\n   \r\n    /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \r\n    /// @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \r\n    /// @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\r\n    /// @notice directly to the requesting contract. If the report callback fails for any reason, an `WitnetQueryResponseDeliveryFailed`\r\n    /// @notice will be triggered, and the Witnet audit trail will be saved in storage, but not so the actual CBOR-encoded result.\r\n    /// @dev Reasons to fail:\r\n    /// @dev - the caller is not a contract implementing the IWitnetConsumer interface;\r\n    /// @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\r\n    /// @dev - invalid SLA parameters were provided;\r\n    /// @dev - zero callback gas limit is provided;\r\n    /// @dev - insufficient value is paid as reward.\r\n    /// @param _queryRAD The RAD hash of the data request to be solved by Witnet.\r\n    /// @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\r\n    /// @param _queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\r\n    /// @return _witnetQueryId Unique query identifier.\r\n    function postRequestWithCallback(\r\n            bytes32 _queryRAD, \r\n            WitnetV2.RadonSLA calldata _querySLA,\r\n            uint24 _queryCallbackGasLimit\r\n        )\r\n        virtual override\r\n        external payable \r\n        checkCallbackRecipient(msg.sender, _queryCallbackGasLimit)\r\n        checkReward(estimateBaseFeeWithCallback(_getGasPrice(),  _queryCallbackGasLimit))\r\n        checkSLA(_querySLA)\r\n        returns (uint256 _witnetQueryId)\r\n    {\r\n        _witnetQueryId = __postRequest(\r\n            _queryRAD,\r\n            _querySLA,\r\n            _queryCallbackGasLimit\r\n        );\r\n        emit WitnetQuery(\r\n            _witnetQueryId, \r\n            _getMsgValue(),\r\n            _querySLA\r\n        );\r\n    }\r\n\r\n    /// @notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \r\n    /// @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \r\n    /// @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\r\n    /// @notice directly to the requesting contract. If the report callback fails for any reason, a `WitnetQueryResponseDeliveryFailed`\r\n    /// @notice event will be triggered, and the Witnet audit trail will be saved in storage, but not so the CBOR-encoded result.\r\n    /// @dev Reasons to fail:\r\n    /// @dev - the caller is not a contract implementing the IWitnetConsumer interface;\r\n    /// @dev - the provided bytecode is empty;\r\n    /// @dev - invalid SLA parameters were provided;\r\n    /// @dev - zero callback gas limit is provided;\r\n    /// @dev - insufficient value is paid as reward.\r\n    /// @param _queryUnverifiedBytecode The (unverified) bytecode containing the actual data request to be solved by the Witnet blockchain.\r\n    /// @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\r\n    /// @param _queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\r\n    /// @return _witnetQueryId Unique query identifier.\r\n    function postRequestWithCallback(\r\n            bytes calldata _queryUnverifiedBytecode,\r\n            WitnetV2.RadonSLA calldata _querySLA, \r\n            uint24 _queryCallbackGasLimit\r\n        )\r\n        virtual override\r\n        external payable \r\n        checkCallbackRecipient(msg.sender, _queryCallbackGasLimit)\r\n        checkReward(estimateBaseFeeWithCallback(_getGasPrice(),  _queryCallbackGasLimit))\r\n        checkSLA(_querySLA)\r\n        returns (uint256 _witnetQueryId)\r\n    {\r\n        _witnetQueryId = __postRequest(\r\n            bytes32(0),\r\n            _querySLA,\r\n            _queryCallbackGasLimit\r\n        );\r\n        WitnetOracleDataLib.seekQueryRequest(_witnetQueryId).witnetBytecode = _queryUnverifiedBytecode;\r\n        emit WitnetQuery(\r\n            _witnetQueryId,\r\n            _getMsgValue(),\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 `_witnetQueryId` is not in 'Posted' status.\r\n    /// @param _witnetQueryId The unique query identifier.\r\n    function upgradeQueryEvmReward(uint256 _witnetQueryId)\r\n        external payable\r\n        virtual override      \r\n        inStatus(_witnetQueryId, WitnetV2.QueryStatus.Posted)\r\n    {\r\n        WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\r\n        __request.evmReward += uint72(_getMsgValue());\r\n        emit WitnetQueryRewardUpgraded(_witnetQueryId, __request.evmReward);\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- Full implementation of IWitnetOracleReporter ---------------------------------------------------------\r\n\r\n    /// @notice Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,\r\n    /// @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \r\n    /// @notice queries providing no actual earnings.\r\n    function estimateReportEarnings(\r\n            uint256[] calldata _witnetQueryIds, \r\n            bytes calldata,\r\n            uint256 _txGasPrice,\r\n            uint256 _nanoWitPrice\r\n        )\r\n        external view\r\n        virtual override\r\n        returns (uint256 _revenues, uint256 _expenses)\r\n    {\r\n        for (uint _ix = 0; _ix < _witnetQueryIds.length; _ix ++) {\r\n            if (WitnetOracleDataLib.seekQueryStatus(_witnetQueryIds[_ix]) == WitnetV2.QueryStatus.Posted) {\r\n                WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryIds[_ix]);\r\n                _revenues += __request.evmReward;\r\n                if (__request.gasCallback > 0) {\r\n                    _expenses += estimateBaseFeeWithCallback(_txGasPrice, __request.gasCallback);\r\n                } else {\r\n                    if (__request.witnetRAD != bytes32(0)) {\r\n                        _expenses += estimateBaseFee(_txGasPrice, __request.witnetRAD);\r\n                    } else {\r\n                        // todo: improve profit estimation accuracy if reporting on deleted query\r\n                        _expenses += estimateBaseFee(_txGasPrice, uint16(0)); \r\n                    }\r\n                }\r\n                _expenses +=  __request.witnetSLA.nanoWitTotalFee() * _nanoWitPrice;\r\n            }\r\n        }\r\n    }\r\n\r\n    /// @notice Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\r\n    /// @dev Returns empty buffer if the query does not exist.\r\n    /// @param _queryIds Query identifies.\r\n    function extractWitnetDataRequests(uint256[] calldata _queryIds)\r\n        external view \r\n        virtual override\r\n        returns (bytes[] memory _bytecodes)\r\n    {\r\n        return WitnetOracleDataLib.extractWitnetDataRequests(registry, _queryIds);\r\n    }\r\n\r\n    /// Reports the Witnet-provable result to a previously posted request. \r\n    /// @dev Will assume `block.timestamp` as the timestamp at which the request was solved.\r\n    /// @dev Fails if:\r\n    /// @dev - the `_witnetQueryId` is not in 'Posted' status.\r\n    /// @dev - provided `_witnetQueryResultTallyHash` is zero;\r\n    /// @dev - length of provided `_result` is zero.\r\n    /// @param _witnetQueryId The unique identifier of the data request.\r\n    /// @param _witnetQueryResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\r\n    /// @param _witnetQueryResultCborBytes The result itself as bytes.\r\n    function reportResult(\r\n            uint256 _witnetQueryId,\r\n            bytes32 _witnetQueryResultTallyHash,\r\n            bytes calldata _witnetQueryResultCborBytes\r\n        )\r\n        external override\r\n        onlyReporters\r\n        inStatus(_witnetQueryId, WitnetV2.QueryStatus.Posted)\r\n        returns (uint256)\r\n    {\r\n        // results cannot be empty:\r\n        _require(\r\n            _witnetQueryResultCborBytes.length != 0, \r\n            \"result cannot be empty\"\r\n        );\r\n        // do actual report and return reward transfered to the reproter:\r\n        // solhint-disable not-rely-on-time\r\n        return __reportResultAndReward(\r\n            _witnetQueryId,\r\n            uint32(block.timestamp),\r\n            _witnetQueryResultTallyHash,\r\n            _witnetQueryResultCborBytes\r\n        );\r\n    }\r\n\r\n    /// Reports the Witnet-provable result to a previously posted request.\r\n    /// @dev Fails if:\r\n    /// @dev - called from unauthorized address;\r\n    /// @dev - the `_witnetQueryId` is not in 'Posted' status.\r\n    /// @dev - provided `_witnetQueryResultTallyHash` is zero;\r\n    /// @dev - length of provided `_witnetQueryResultCborBytes` is zero.\r\n    /// @param _witnetQueryId The unique query identifier\r\n    /// @param _witnetQueryResultTimestamp Timestamp at which the reported value was captured by the Witnet blockchain. \r\n    /// @param _witnetQueryResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\r\n    /// @param _witnetQueryResultCborBytes The result itself as bytes.\r\n    function reportResult(\r\n            uint256 _witnetQueryId,\r\n            uint32  _witnetQueryResultTimestamp,\r\n            bytes32 _witnetQueryResultTallyHash,\r\n            bytes calldata _witnetQueryResultCborBytes\r\n        )\r\n        external\r\n        override\r\n        onlyReporters\r\n        inStatus(_witnetQueryId, WitnetV2.QueryStatus.Posted)\r\n        returns (uint256)\r\n    {\r\n        // validate timestamp\r\n        _require(\r\n            _witnetQueryResultTimestamp > 0 \r\n                && _witnetQueryResultTimestamp <= block.timestamp, \r\n            \"bad timestamp\"\r\n        );\r\n        // results cannot be empty\r\n        _require(\r\n            _witnetQueryResultCborBytes.length != 0, \r\n            \"result cannot be empty\"\r\n        );\r\n        // do actual report and return reward transfered to the reproter:\r\n        return  __reportResultAndReward(\r\n            _witnetQueryId,\r\n            _witnetQueryResultTimestamp,\r\n            _witnetQueryResultTallyHash,\r\n            _witnetQueryResultCborBytes\r\n        );\r\n    }\r\n\r\n    /// @notice Reports Witnet-provided results to multiple requests within a single EVM tx.\r\n    /// @notice Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\r\n    /// @dev Fails only if called from unauthorized address.\r\n    /// @param _batchResults Array of BatchResult structs, every one containing:\r\n    ///         - unique query identifier;\r\n    ///         - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;\r\n    ///         - hash of the corresponding data request tx at the Witnet side-chain level;\r\n    ///         - data request result in raw bytes.\r\n    function reportResultBatch(IWitnetOracleReporter.BatchResult[] calldata _batchResults)\r\n        external override\r\n        onlyReporters\r\n        returns (uint256 _batchReward)\r\n    {\r\n        for ( uint _i = 0; _i < _batchResults.length; _i ++) {\r\n            if (\r\n                WitnetOracleDataLib.seekQueryStatus(_batchResults[_i].queryId)\r\n                    != WitnetV2.QueryStatus.Posted\r\n            ) {\r\n                emit BatchReportError(\r\n                    _batchResults[_i].queryId,\r\n                    WitnetOracleDataLib.notInStatusRevertMessage(WitnetV2.QueryStatus.Posted)\r\n                );\r\n            } else if (\r\n                _batchResults[_i].queryResultTimestamp == 0\r\n                    || _batchResults[_i].queryResultCborBytes.length == 0\r\n            ) {\r\n                emit BatchReportError(\r\n                    _batchResults[_i].queryId, \r\n                    string(abi.encodePacked(\r\n                        class(),\r\n                        \": invalid report data\"\r\n                    ))\r\n                );\r\n            } else {\r\n                _batchReward += __reportResult(\r\n                    _batchResults[_i].queryId,\r\n                    _batchResults[_i].queryResultTimestamp,\r\n                    _batchResults[_i].queryResultTallyHash,\r\n                    _batchResults[_i].queryResultCborBytes\r\n                );\r\n            }\r\n        }   \r\n        // Transfer rewards to all reported results in one single transfer to the reporter:\r\n        if (_batchReward > 0) {\r\n            __safeTransferTo(\r\n                payable(msg.sender),\r\n                _batchReward\r\n            );\r\n        }\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Full implementation of 'IWitnetRequestBoardAdminACLs' ------------------------------------------------------\r\n\r\n    /// Tells whether given address is included in the active reporters control list.\r\n    /// @param _reporter The address to be checked.\r\n    function isReporter(address _reporter) public view override returns (bool) {\r\n        return WitnetOracleDataLib.isReporter(_reporter);\r\n    }\r\n\r\n    /// Adds given addresses to the active reporters control list.\r\n    /// @dev Can only be called from the owner address.\r\n    /// @dev Emits the `ReportersSet` event. \r\n    /// @param _reporters List of addresses to be added to the active reporters control list.\r\n    function setReporters(address[] memory _reporters)\r\n        public\r\n        override\r\n        onlyOwner\r\n    {\r\n        __setReporters(_reporters);\r\n    }\r\n\r\n    /// Removes given addresses from the active reporters control list.\r\n    /// @dev Can only be called from the owner address.\r\n    /// @dev Emits the `ReportersUnset` event. \r\n    /// @param _exReporters List of addresses to be added to the active reporters control list.\r\n    function unsetReporters(address[] memory _exReporters)\r\n        public\r\n        override\r\n        onlyOwner\r\n    {\r\n        for (uint ix = 0; ix < _exReporters.length; ix ++) {\r\n            address _reporter = _exReporters[ix];\r\n            __storage().reporters[_reporter] = false;\r\n        }\r\n        emit ReportersUnset(_exReporters);\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Internal functions -----------------------------------------------------------------------------------------\r\n\r\n    function __newQueryId(bytes32 _queryRAD, bytes32 _querySLA)\r\n        virtual internal view\r\n        returns (uint256)\r\n    {\r\n        return uint(keccak256(abi.encode(\r\n            channel(),\r\n            block.number,\r\n            msg.sender,\r\n            _queryRAD,\r\n            _querySLA\r\n        )));\r\n    }\r\n\r\n    function __postRequest(bytes32 _radHash, WitnetV2.RadonSLA calldata _sla, uint24 _callbackGasLimit)\r\n        virtual internal\r\n        returns (uint256 _witnetQueryId)\r\n    {\r\n        _witnetQueryId = ++ __storage().nonce; //__newQueryId(_radHash, _packedSLA);\r\n        WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\r\n        _require(__request.requester == address(0), \"already posted\");\r\n        {\r\n            __request.requester = msg.sender;\r\n            __request.gasCallback = _callbackGasLimit;\r\n            __request.evmReward = uint72(_getMsgValue());\r\n            __request.witnetRAD = _radHash;\r\n            __request.witnetSLA = _sla;\r\n        }\r\n    }\r\n\r\n    function __reportResult(\r\n            uint256 _witnetQueryId,\r\n            uint32  _witnetQueryResultTimestamp,\r\n            bytes32 _witnetQueryResultTallyHash,\r\n            bytes calldata _witnetQueryResultCborBytes\r\n        )\r\n        virtual internal\r\n        returns (uint256 _evmReward)\r\n    {\r\n        // read requester address and whether a callback was requested:\r\n        WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryId);\r\n                \r\n        // read query EVM reward:\r\n        _evmReward = __request.evmReward;\r\n        \r\n        // set EVM reward right now as to avoid re-entrancy attacks:\r\n        __request.evmReward = 0; \r\n\r\n        // determine whether a callback is required\r\n        if (__request.gasCallback > 0) {\r\n            (\r\n                uint256 _evmCallbackActualGas,\r\n                bool _evmCallbackSuccess,\r\n                string memory _evmCallbackRevertMessage\r\n            ) = __reportResultCallback(\r\n                _witnetQueryId,\r\n                _witnetQueryResultTimestamp,\r\n                _witnetQueryResultTallyHash,\r\n                _witnetQueryResultCborBytes,\r\n                __request.requester,\r\n                __request.gasCallback\r\n            );\r\n            if (_evmCallbackSuccess) {\r\n                // => the callback run successfully\r\n                emit WitnetQueryResponseDelivered(\r\n                    _witnetQueryId,\r\n                    _getGasPrice(),\r\n                    _evmCallbackActualGas\r\n                );\r\n            } else {\r\n                // => the callback reverted\r\n                emit WitnetQueryResponseDeliveryFailed(\r\n                    _witnetQueryId,\r\n                    _witnetQueryResultCborBytes,\r\n                    _getGasPrice(),\r\n                    _evmCallbackActualGas,\r\n                    bytes(_evmCallbackRevertMessage).length > 0 \r\n                        ? _evmCallbackRevertMessage\r\n                        : \"WitnetOracle: callback exceeded gas limit\"\r\n                );\r\n            }\r\n            // upon delivery, successfull or not, the audit trail is saved into storage, \r\n            // but not the actual result which was intended to be passed over to the requester:\r\n            __writeQueryResponse(\r\n                _witnetQueryId, \r\n                _witnetQueryResultTimestamp, \r\n                _witnetQueryResultTallyHash, \r\n                hex\"\"\r\n            );\r\n        } else {\r\n            // => no callback is involved\r\n            emit WitnetQueryResponse(\r\n                _witnetQueryId, \r\n                _getGasPrice()\r\n            );\r\n            // write query result and audit trail data into storage \r\n            __writeQueryResponse(\r\n                _witnetQueryId,\r\n                _witnetQueryResultTimestamp,\r\n                _witnetQueryResultTallyHash,\r\n                _witnetQueryResultCborBytes\r\n            );\r\n        }\r\n    }\r\n\r\n    function __reportResultAndReward(\r\n            uint256 _witnetQueryId,\r\n            uint32  _witnetQueryResultTimestamp,\r\n            bytes32 _witnetQueryResultTallyHash,\r\n            bytes calldata _witnetQueryResultCborBytes\r\n        )\r\n        virtual internal\r\n        returns (uint256 _evmReward)\r\n    {\r\n        _evmReward = __reportResult(\r\n            _witnetQueryId, \r\n            _witnetQueryResultTimestamp, \r\n            _witnetQueryResultTallyHash, \r\n            _witnetQueryResultCborBytes\r\n        );\r\n        // transfer reward to reporter\r\n        __safeTransferTo(\r\n            payable(msg.sender),\r\n            _evmReward\r\n        );\r\n    }\r\n\r\n    function __reportResultCallback(\r\n            uint256 _witnetQueryId,\r\n            uint64  _witnetQueryResultTimestamp,\r\n            bytes32 _witnetQueryResultTallyHash,\r\n            bytes calldata _witnetQueryResultCborBytes,\r\n            address _evmRequester,\r\n            uint256 _evmCallbackGasLimit\r\n        )\r\n        virtual internal\r\n        returns (\r\n            uint256 _evmCallbackActualGas, \r\n            bool _evmCallbackSuccess, \r\n            string memory _evmCallbackRevertMessage\r\n        )\r\n    {\r\n        _evmCallbackActualGas = gasleft();\r\n        if (_witnetQueryResultCborBytes[0] == bytes1(0xd8)) {\r\n            WitnetCBOR.CBOR[] memory _errors = WitnetCBOR.fromBytes(_witnetQueryResultCborBytes).readArray();\r\n            if (_errors.length < 2) {\r\n                // try to report result with unknown error:\r\n                try IWitnetConsumer(_evmRequester).reportWitnetQueryError{gas: _evmCallbackGasLimit}(\r\n                    _witnetQueryId,\r\n                    _witnetQueryResultTimestamp,\r\n                    _witnetQueryResultTallyHash,\r\n                    block.number,\r\n                    Witnet.ResultErrorCodes.Unknown,\r\n                    WitnetCBOR.CBOR({\r\n                        buffer: WitnetBuffer.Buffer({ data: hex\"\", cursor: 0}),\r\n                        initialByte: 0,\r\n                        majorType: 0,\r\n                        additionalInformation: 0,\r\n                        len: 0,\r\n                        tag: 0\r\n                    })\r\n                ) {\r\n                    _evmCallbackSuccess = true;\r\n                } catch Error(string memory err) {\r\n                    _evmCallbackRevertMessage = err;\r\n                }\r\n            } else {\r\n                // try to report result with parsable error:\r\n                try IWitnetConsumer(_evmRequester).reportWitnetQueryError{gas: _evmCallbackGasLimit}(\r\n                    _witnetQueryId,\r\n                    _witnetQueryResultTimestamp,\r\n                    _witnetQueryResultTallyHash,\r\n                    block.number,\r\n                    Witnet.ResultErrorCodes(_errors[0].readUint()),\r\n                    _errors[0]\r\n                ) {\r\n                    _evmCallbackSuccess = true;\r\n                } catch Error(string memory err) {\r\n                    _evmCallbackRevertMessage = err; \r\n                }\r\n            }\r\n        } else {\r\n            // try to report result result with no error :\r\n            try IWitnetConsumer(_evmRequester).reportWitnetQueryResult{gas: _evmCallbackGasLimit}(\r\n                _witnetQueryId,\r\n                _witnetQueryResultTimestamp,\r\n                _witnetQueryResultTallyHash,\r\n                block.number,\r\n                WitnetCBOR.fromBytes(_witnetQueryResultCborBytes)\r\n            ) {\r\n                _evmCallbackSuccess = true;\r\n            } catch Error(string memory err) {\r\n                _evmCallbackRevertMessage = err;\r\n            } catch (bytes memory) {}\r\n        }\r\n        _evmCallbackActualGas -= gasleft();\r\n    }\r\n\r\n    function __setReporters(address[] memory _reporters)\r\n        virtual internal\r\n    {\r\n        for (uint ix = 0; ix < _reporters.length; ix ++) {\r\n            address _reporter = _reporters[ix];\r\n            __storage().reporters[_reporter] = true;\r\n        }\r\n        emit ReportersSet(_reporters);\r\n    }\r\n\r\n    /// Returns storage pointer to contents of 'WitnetBoardState' struct.\r\n    function __storage() virtual internal pure returns (WitnetOracleDataLib.Storage storage _ptr) {\r\n      return WitnetOracleDataLib.data();\r\n    }\r\n\r\n    function __writeQueryResponse(\r\n            uint256 _witnetQueryId, \r\n            uint32  _witnetQueryResultTimestamp, \r\n            bytes32 _witnetQueryResultTallyHash, \r\n            bytes memory _witnetQueryResultCborBytes\r\n        )\r\n        virtual internal\r\n    {\r\n        WitnetOracleDataLib.seekQuery(_witnetQueryId).response = WitnetV2.Response({\r\n            reporter: msg.sender,\r\n            finality: uint64(block.number),\r\n            resultTimestamp: _witnetQueryResultTimestamp,\r\n            resultTallyHash: _witnetQueryResultTallyHash,\r\n            resultCborBytes: _witnetQueryResultCborBytes\r\n        });\r\n    }\r\n\r\n}",
  "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\core\\defaults\\WitnetOracleTrustableBase.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/defaults/WitnetOracleTrustableBase.sol",
    "exportedSymbols": {
      "Context": [
        509
      ],
      "ERC165": [
        602
      ],
      "IERC165": [
        614
      ],
      "IERC20": [
        479
      ],
      "IWitnetConsumer": [
        12829
      ],
      "IWitnetOracle": [
        13265
      ],
      "IWitnetOracleEvents": [
        13315
      ],
      "IWitnetOracleReporter": [
        13398
      ],
      "IWitnetRequestBoardAdminACLs": [
        13758
      ],
      "IWitnetRequestBytecodes": [
        13979
      ],
      "IWitnetRequestFactory": [
        14002
      ],
      "Initializable": [
        253
      ],
      "Ownable": [
        401
      ],
      "Ownable2Step": [
        24094
      ],
      "Payable": [
        24145
      ],
      "Proxiable": [
        24189
      ],
      "ReentrancyGuard": [
        578
      ],
      "Upgradeable": [
        24304
      ],
      "Witnet": [
        17557
      ],
      "WitnetBuffer": [
        19191
      ],
      "WitnetCBOR": [
        20734
      ],
      "WitnetErrorsLib": [
        23206
      ],
      "WitnetOracle": [
        749
      ],
      "WitnetOracleDataLib": [
        12396
      ],
      "WitnetOracleTrustableBase": [
        6817
      ],
      "WitnetProxy": [
        3700
      ],
      "WitnetRequestBytecodes": [
        849
      ],
      "WitnetRequestFactory": [
        880
      ],
      "WitnetUpgradableBase": [
        3887
      ],
      "WitnetV2": [
        23640
      ]
    },
    "id": 6818,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4839,
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:36"
      },
      {
        "id": 4840,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "68:33:36"
      },
      {
        "absolutePath": "project:/contracts/core/WitnetUpgradableBase.sol",
        "file": "../WitnetUpgradableBase.sol",
        "id": 4841,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 3888,
        "src": "105:37:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/WitnetOracle.sol",
        "file": "../../WitnetOracle.sol",
        "id": 4842,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 750,
        "src": "144:32:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/WitnetRequestFactory.sol",
        "file": "../../WitnetRequestFactory.sol",
        "id": 4843,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 881,
        "src": "178:40:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitnetOracleDataLib.sol",
        "file": "../../data/WitnetOracleDataLib.sol",
        "id": 4844,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 12397,
        "src": "220:44:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitnetOracleReporter.sol",
        "file": "../../interfaces/IWitnetOracleReporter.sol",
        "id": 4845,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 13399,
        "src": "266:52:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitnetRequestBoardAdminACLs.sol",
        "file": "../../interfaces/IWitnetRequestBoardAdminACLs.sol",
        "id": 4846,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 13759,
        "src": "320:59:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitnetConsumer.sol",
        "file": "../../interfaces/IWitnetConsumer.sol",
        "id": 4847,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 12830,
        "src": "381:46:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/libs/WitnetErrorsLib.sol",
        "file": "../../libs/WitnetErrorsLib.sol",
        "id": 4848,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 23207,
        "src": "429:40:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Payable.sol",
        "file": "../../patterns/Payable.sol",
        "id": 4849,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6818,
        "sourceUnit": 24146,
        "src": "471:36:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 4851,
              "name": "WitnetUpgradableBase",
              "nameLocations": [
                "964:20:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3887,
              "src": "964:20:36"
            },
            "id": 4852,
            "nodeType": "InheritanceSpecifier",
            "src": "964:20:36"
          },
          {
            "baseName": {
              "id": 4853,
              "name": "WitnetOracle",
              "nameLocations": [
                "995:12:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 749,
              "src": "995:12:36"
            },
            "id": 4854,
            "nodeType": "InheritanceSpecifier",
            "src": "995:12:36"
          },
          {
            "baseName": {
              "id": 4855,
              "name": "IWitnetOracleReporter",
              "nameLocations": [
                "1018:21:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 13398,
              "src": "1018:21:36"
            },
            "id": 4856,
            "nodeType": "InheritanceSpecifier",
            "src": "1018:21:36"
          },
          {
            "baseName": {
              "id": 4857,
              "name": "IWitnetRequestBoardAdminACLs",
              "nameLocations": [
                "1050:28:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 13758,
              "src": "1050:28:36"
            },
            "id": 4858,
            "nodeType": "InheritanceSpecifier",
            "src": "1050:28:36"
          },
          {
            "baseName": {
              "id": 4859,
              "name": "Payable",
              "nameLocations": [
                "1089:7:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 24145,
              "src": "1089:7:36"
            },
            "id": 4860,
            "nodeType": "InheritanceSpecifier",
            "src": "1089:7:36"
          }
        ],
        "canonicalName": "WitnetOracleTrustableBase",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 4850,
          "nodeType": "StructuredDocumentation",
          "src": "511:391:36",
          "text": "@title Witnet Request Board \"trustable\" base implementation contract.\n @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\n @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\n The result of the requests will be posted back to this contract by the bridge nodes too.\n @author The Witnet Foundation"
        },
        "fullyImplemented": false,
        "id": 6817,
        "linearizedBaseContracts": [
          6817,
          24145,
          13758,
          13398,
          749,
          13315,
          13265,
          3887,
          578,
          24304,
          24189,
          253,
          24094,
          401,
          509
        ],
        "name": "WitnetOracleTrustableBase",
        "nameLocation": "920:25:36",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 4863,
            "libraryName": {
              "id": 4861,
              "name": "Witnet",
              "nameLocations": [
                "1112:6:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 17557,
              "src": "1112:6:36"
            },
            "nodeType": "UsingForDirective",
            "src": "1106:23:36",
            "typeName": {
              "id": 4862,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1123:5:36",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "global": false,
            "id": 4867,
            "libraryName": {
              "id": 4864,
              "name": "Witnet",
              "nameLocations": [
                "1141:6:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 17557,
              "src": "1141:6:36"
            },
            "nodeType": "UsingForDirective",
            "src": "1135:31:36",
            "typeName": {
              "id": 4866,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4865,
                "name": "Witnet.Result",
                "nameLocations": [
                  "1152:6:36",
                  "1159:6:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 16042,
                "src": "1152:13:36"
              },
              "referencedDeclaration": 16042,
              "src": "1152:13:36",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                "typeString": "struct Witnet.Result"
              }
            }
          },
          {
            "global": false,
            "id": 4871,
            "libraryName": {
              "id": 4868,
              "name": "WitnetCBOR",
              "nameLocations": [
                "1178:10:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 20734,
              "src": "1178:10:36"
            },
            "nodeType": "UsingForDirective",
            "src": "1172:37:36",
            "typeName": {
              "id": 4870,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4869,
                "name": "WitnetCBOR.CBOR",
                "nameLocations": [
                  "1193:10:36",
                  "1204:4:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 19218,
                "src": "1193:15:36"
              },
              "referencedDeclaration": 19218,
              "src": "1193:15:36",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR"
              }
            }
          },
          {
            "global": false,
            "id": 4875,
            "libraryName": {
              "id": 4872,
              "name": "WitnetV2",
              "nameLocations": [
                "1221:8:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "1221:8:36"
            },
            "nodeType": "UsingForDirective",
            "src": "1215:37:36",
            "typeName": {
              "id": 4874,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4873,
                "name": "WitnetV2.RadonSLA",
                "nameLocations": [
                  "1234:8:36",
                  "1243:8:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23503,
                "src": "1234:17:36"
              },
              "referencedDeclaration": 23503,
              "src": "1234:17:36",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                "typeString": "struct WitnetV2.RadonSLA"
              }
            }
          },
          {
            "global": false,
            "id": 4879,
            "libraryName": {
              "id": 4876,
              "name": "WitnetV2",
              "nameLocations": [
                "1264:8:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "1264:8:36"
            },
            "nodeType": "UsingForDirective",
            "src": "1258:36:36",
            "typeName": {
              "id": 4878,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4877,
                "name": "WitnetV2.Request",
                "nameLocations": [
                  "1277:8:36",
                  "1286:7:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23476,
                "src": "1277:16:36"
              },
              "referencedDeclaration": 23476,
              "src": "1277:16:36",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                "typeString": "struct WitnetV2.Request"
              }
            }
          },
          {
            "global": false,
            "id": 4883,
            "libraryName": {
              "id": 4880,
              "name": "WitnetV2",
              "nameLocations": [
                "1306:8:36"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "1306:8:36"
            },
            "nodeType": "UsingForDirective",
            "src": "1300:37:36",
            "typeName": {
              "id": 4882,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4881,
                "name": "WitnetV2.Response",
                "nameLocations": [
                  "1319:8:36",
                  "1328:8:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23488,
                "src": "1319:17:36"
              },
              "referencedDeclaration": 23488,
              "src": "1319:17:36",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                "typeString": "struct WitnetV2.Response"
              }
            }
          },
          {
            "baseFunctions": [
              748
            ],
            "constant": false,
            "functionSelector": "adb7c3f7",
            "id": 4890,
            "mutability": "immutable",
            "name": "specs",
            "nameLocation": "1378:5:36",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 4885,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1369:8:36"
            },
            "scope": 6817,
            "src": "1345:72:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 4884,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "1345:6:36",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "expression": {
                "arguments": [
                  {
                    "id": 4887,
                    "name": "IWitnetOracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 13265,
                    "src": "1391:13:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_contract$_IWitnetOracle_$13265_$",
                      "typeString": "type(contract IWitnetOracle)"
                    }
                  }
                ],
                "expression": {
                  "argumentTypes": [
                    {
                      "typeIdentifier": "t_type$_t_contract$_IWitnetOracle_$13265_$",
                      "typeString": "type(contract IWitnetOracle)"
                    }
                  ],
                  "id": 4886,
                  "name": "type",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4294967269,
                  "src": "1386:4:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                    "typeString": "function () pure"
                  }
                },
                "id": 4888,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "functionCall",
                "lValueRequested": false,
                "nameLocations": [],
                "names": [],
                "nodeType": "FunctionCall",
                "src": "1386:19:36",
                "tryCall": false,
                "typeDescriptions": {
                  "typeIdentifier": "t_magic_meta_type_t_contract$_IWitnetOracle_$13265",
                  "typeString": "type(contract IWitnetOracle)"
                }
              },
              "id": 4889,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberLocation": "1406:11:36",
              "memberName": "interfaceId",
              "nodeType": "MemberAccess",
              "src": "1386:31:36",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "visibility": "public"
          },
          {
            "baseFunctions": [
              743
            ],
            "constant": false,
            "functionSelector": "7b103999",
            "id": 4894,
            "mutability": "immutable",
            "name": "registry",
            "nameLocation": "1473:8:36",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 4893,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1464:8:36"
            },
            "scope": 6817,
            "src": "1424:57:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
              "typeString": "contract WitnetRequestBytecodes"
            },
            "typeName": {
              "id": 4892,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4891,
                "name": "WitnetRequestBytecodes",
                "nameLocations": [
                  "1424:22:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 849,
                "src": "1424:22:36"
              },
              "referencedDeclaration": 849,
              "src": "1424:22:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                "typeString": "contract WitnetRequestBytecodes"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4897,
            "mutability": "immutable",
            "name": "__factory",
            "nameLocation": "1533:9:36",
            "nodeType": "VariableDeclaration",
            "scope": 6817,
            "src": "1494:48:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
              "typeString": "contract WitnetRequestFactory"
            },
            "typeName": {
              "id": 4896,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4895,
                "name": "WitnetRequestFactory",
                "nameLocations": [
                  "1494:20:36"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 880,
                "src": "1494:20:36"
              },
              "referencedDeclaration": 880,
              "src": "1494:20:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                "typeString": "contract WitnetRequestFactory"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 4927,
              "nodeType": "Block",
              "src": "1624:191:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 4918,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4908,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "expression": {
                                  "id": 4904,
                                  "name": "_addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4899,
                                  "src": "1658:5:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 4905,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "1664:4:36",
                                "memberName": "code",
                                "nodeType": "MemberAccess",
                                "src": "1658:10:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 4906,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1669:6:36",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "1658:17:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 4907,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1678:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "1658:21:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 4915,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967268,
                                    "src": "1729:4:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_WitnetOracleTrustableBase_$6817",
                                      "typeString": "contract WitnetOracleTrustableBase"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_WitnetOracleTrustableBase_$6817",
                                      "typeString": "contract WitnetOracleTrustableBase"
                                    }
                                  ],
                                  "id": 4914,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1721:7:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 4913,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1721:7:36",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 4916,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1721:13:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 4910,
                                    "name": "_addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4899,
                                    "src": "1699:5:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 4909,
                                  "name": "IWitnetConsumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12829,
                                  "src": "1683:15:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitnetConsumer_$12829_$",
                                    "typeString": "type(contract IWitnetConsumer)"
                                  }
                                },
                                "id": 4911,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1683:22:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitnetConsumer_$12829",
                                  "typeString": "contract IWitnetConsumer"
                                }
                              },
                              "id": 4912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1706:14:36",
                              "memberName": "reportableFrom",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12828,
                              "src": "1683:37:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                "typeString": "function (address) view external returns (bool)"
                              }
                            },
                            "id": 4917,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1683:52:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1658:77:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          },
                          "id": 4921,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 4919,
                            "name": "_callbackGasLimit",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4901,
                            "src": "1739:17:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 4920,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1759:1:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1739:21:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1658:102:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c69642063616c6c6261636b",
                        "id": 4923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1775:18:36",
                        "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": 4903,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "1635:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 4924,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1635:169:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4925,
                  "nodeType": "ExpressionStatement",
                  "src": "1635:169:36"
                },
                {
                  "id": 4926,
                  "nodeType": "PlaceholderStatement",
                  "src": "1806:1:36"
                }
              ]
            },
            "id": 4928,
            "name": "checkCallbackRecipient",
            "nameLocation": "1560:22:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4902,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4899,
                  "mutability": "mutable",
                  "name": "_addr",
                  "nameLocation": "1591:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4928,
                  "src": "1583:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4898,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1583:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4901,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "1605:17:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4928,
                  "src": "1598:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 4900,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1598:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1582:41:36"
            },
            "src": "1551:264:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4951,
              "nodeType": "Block",
              "src": "1862:237:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 4933,
                            "name": "_getMsgValue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24136,
                            "src": "1896:12:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 4934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1896:14:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "id": 4935,
                          "name": "_baseFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4930,
                          "src": "1914:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1896:26:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e73756666696369656e7420726577617264",
                        "id": 4937,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1938:21:36",
                        "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": 4932,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "1873:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 4938,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1873:97:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4939,
                  "nodeType": "ExpressionStatement",
                  "src": "1873:97:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4946,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 4941,
                            "name": "_getMsgValue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24136,
                            "src": "2005:12:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 4942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2005:14:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4945,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 4943,
                            "name": "_baseFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4930,
                            "src": "2023:8:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3130",
                            "id": 4944,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2034:2:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_10_by_1",
                              "typeString": "int_const 10"
                            },
                            "value": "10"
                          },
                          "src": "2023:13:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2005:31:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "746f6f206d75636820726577617264",
                        "id": 4947,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2051:17:36",
                        "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": 4940,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "1982:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 4948,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1982:97:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4949,
                  "nodeType": "ExpressionStatement",
                  "src": "1982:97:36"
                },
                {
                  "id": 4950,
                  "nodeType": "PlaceholderStatement",
                  "src": "2090:1:36"
                }
              ]
            },
            "id": 4952,
            "name": "checkReward",
            "nameLocation": "1832:11:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4931,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4930,
                  "mutability": "mutable",
                  "name": "_baseFee",
                  "nameLocation": "1852:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4952,
                  "src": "1844:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4929,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1844:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1843:18:36"
            },
            "src": "1823:276:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4966,
              "nodeType": "Block",
              "src": "2157:106:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 4960,
                            "name": "sla",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4955,
                            "src": "2208:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                              "typeString": "struct WitnetV2.RadonSLA calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                              "typeString": "struct WitnetV2.RadonSLA calldata"
                            }
                          ],
                          "expression": {
                            "id": 4958,
                            "name": "WitnetV2",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23640,
                            "src": "2191:8:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                              "typeString": "type(library WitnetV2)"
                            }
                          },
                          "id": 4959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2200:7:36",
                          "memberName": "isValid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23548,
                          "src": "2191:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_RadonSLA_$23503_calldata_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct WitnetV2.RadonSLA calldata) pure returns (bool)"
                          }
                        },
                        "id": 4961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2191:21:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420534c41",
                        "id": 4962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2228:13:36",
                        "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": 4957,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "2168:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 4963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2168:84:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4964,
                  "nodeType": "ExpressionStatement",
                  "src": "2168:84:36"
                },
                {
                  "id": 4965,
                  "nodeType": "PlaceholderStatement",
                  "src": "2254:1:36"
                }
              ]
            },
            "id": 4967,
            "name": "checkSLA",
            "nameLocation": "2116:8:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4956,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4955,
                  "mutability": "mutable",
                  "name": "sla",
                  "nameLocation": "2152:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4967,
                  "src": "2125:30:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 4954,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4953,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "2125:8:36",
                        "2134:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "2125:17:36"
                    },
                    "referencedDeclaration": 23503,
                    "src": "2125:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2124:32:36"
            },
            "src": "2107:156:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4992,
              "nodeType": "Block",
              "src": "2404:189:36",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    },
                    "id": 4980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 4977,
                          "name": "_queryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4970,
                          "src": "2453:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 4975,
                          "name": "WitnetOracleDataLib",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12396,
                          "src": "2417:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                            "typeString": "type(library WitnetOracleDataLib)"
                          }
                        },
                        "id": 4976,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2437:15:36",
                        "memberName": "seekQueryStatus",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12172,
                        "src": "2417:35:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$23461_$",
                          "typeString": "function (uint256) view returns (enum WitnetV2.QueryStatus)"
                        }
                      },
                      "id": 4978,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2417:45:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_QueryStatus_$23461",
                        "typeString": "enum WitnetV2.QueryStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "id": 4979,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4973,
                      "src": "2466:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_QueryStatus_$23461",
                        "typeString": "enum WitnetV2.QueryStatus"
                      }
                    },
                    "src": "2417:56:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 4990,
                    "nodeType": "Block",
                    "src": "2564:22:36",
                    "statements": [
                      {
                        "id": 4989,
                        "nodeType": "PlaceholderStatement",
                        "src": "2575:1:36"
                      }
                    ]
                  },
                  "id": 4991,
                  "nodeType": "IfStatement",
                  "src": "2413:173:36",
                  "trueBody": {
                    "id": 4988,
                    "nodeType": "Block",
                    "src": "2475:83:36",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 4984,
                                  "name": "_status",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4973,
                                  "src": "2539:7:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_QueryStatus_$23461",
                                    "typeString": "enum WitnetV2.QueryStatus"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_QueryStatus_$23461",
                                    "typeString": "enum WitnetV2.QueryStatus"
                                  }
                                ],
                                "expression": {
                                  "id": 4982,
                                  "name": "WitnetOracleDataLib",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12396,
                                  "src": "2494:19:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                    "typeString": "type(library WitnetOracleDataLib)"
                                  }
                                },
                                "id": 4983,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "2514:24:36",
                                "memberName": "notInStatusRevertMessage",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 12395,
                                "src": "2494:44:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_delegatecall_pure$_t_enum$_QueryStatus_$23461_$returns$_t_string_memory_ptr_$",
                                  "typeString": "function (enum WitnetV2.QueryStatus) pure returns (string memory)"
                                }
                              },
                              "id": 4985,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2494:53:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 4981,
                            "name": "_revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3816,
                            "src": "2486:7:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) view"
                            }
                          },
                          "id": 4986,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2486:62:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4987,
                        "nodeType": "ExpressionStatement",
                        "src": "2486:62:36"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 4968,
              "nodeType": "StructuredDocumentation",
              "src": "2271:61:36",
              "text": "Asserts the given query is currently in the given status."
            },
            "id": 4993,
            "name": "inStatus",
            "nameLocation": "2347:8:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4970,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "2364:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4993,
                  "src": "2356:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4969,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2356:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4973,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "2395:7:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 4993,
                  "src": "2374:28:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_QueryStatus_$23461",
                    "typeString": "enum WitnetV2.QueryStatus"
                  },
                  "typeName": {
                    "id": 4972,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4971,
                      "name": "WitnetV2.QueryStatus",
                      "nameLocations": [
                        "2374:8:36",
                        "2383:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23461,
                      "src": "2374:20:36"
                    },
                    "referencedDeclaration": 23461,
                    "src": "2374:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2355:48:36"
            },
            "src": "2338:255:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5011,
              "nodeType": "Block",
              "src": "2706:161:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4999,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967281,
                            "src": "2740:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 5000,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2744:6:36",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "2740:10:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 5003,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4996,
                                "src": "2791:8:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 5001,
                                "name": "WitnetOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12396,
                                "src": "2754:19:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                  "typeString": "type(library WitnetOracleDataLib)"
                                }
                              },
                              "id": 5002,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2774:16:36",
                              "memberName": "seekQueryRequest",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12092,
                              "src": "2754:36:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                                "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                              }
                            },
                            "id": 5004,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2754:46:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 5005,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2801:9:36",
                          "memberName": "requester",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23464,
                          "src": "2754:56:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2740:70:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "6e6f742074686520726571756573746572",
                        "id": 5007,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2826:19:36",
                        "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": 4998,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "2717:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5008,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2717:139:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5009,
                  "nodeType": "ExpressionStatement",
                  "src": "2717:139:36"
                },
                {
                  "id": 5010,
                  "nodeType": "PlaceholderStatement",
                  "src": "2858:1:36"
                }
              ]
            },
            "documentation": {
              "id": 4994,
              "nodeType": "StructuredDocumentation",
              "src": "2601:58:36",
              "text": "Asserts the caller actually posted the referred query."
            },
            "id": 5012,
            "name": "onlyRequester",
            "nameLocation": "2674:13:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 4997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4996,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "2696:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5012,
                  "src": "2688:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4995,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2688:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2687:18:36"
            },
            "src": "2665:202:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5026,
              "nodeType": "Block",
              "src": "2954:136:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "baseExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 5016,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6783,
                              "src": "2988:9:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                              }
                            },
                            "id": 5017,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2988:11:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                              "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                            }
                          },
                          "id": 5018,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3000:9:36",
                          "memberName": "reporters",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12035,
                          "src": "2988:21:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                            "typeString": "mapping(address => bool)"
                          }
                        },
                        "id": 5021,
                        "indexExpression": {
                          "expression": {
                            "id": 5019,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967281,
                            "src": "3010:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 5020,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3014:6:36",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "3010:10:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2988:33:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e617574686f72697a6564207265706f72746572",
                        "id": 5022,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3036:23:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6180e01bc6a842700481b1d2fd88798472e17f6021a35e228531ce5b0c073b92",
                          "typeString": "literal_string \"unauthorized reporter\""
                        },
                        "value": "unauthorized reporter"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6180e01bc6a842700481b1d2fd88798472e17f6021a35e228531ce5b0c073b92",
                          "typeString": "literal_string \"unauthorized reporter\""
                        }
                      ],
                      "id": 5015,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "2965:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5023,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2965:105:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5024,
                  "nodeType": "ExpressionStatement",
                  "src": "2965:105:36"
                },
                {
                  "id": 5025,
                  "nodeType": "PlaceholderStatement",
                  "src": "3081:1:36"
                }
              ]
            },
            "documentation": {
              "id": 5013,
              "nodeType": "StructuredDocumentation",
              "src": "2875:50:36",
              "text": "Asserts the caller is authorized as a reporter"
            },
            "id": 5027,
            "name": "onlyReporters",
            "nameLocation": "2940:13:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5014,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2954:0:36"
            },
            "src": "2931:159:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5065,
              "nodeType": "Block",
              "src": "3520:70:36",
              "statements": [
                {
                  "expression": {
                    "id": 5059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5057,
                      "name": "__factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4897,
                      "src": "3531:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                        "typeString": "contract WitnetRequestFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5058,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5030,
                      "src": "3543:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                        "typeString": "contract WitnetRequestFactory"
                      }
                    },
                    "src": "3531:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                      "typeString": "contract WitnetRequestFactory"
                    }
                  },
                  "id": 5060,
                  "nodeType": "ExpressionStatement",
                  "src": "3531:20:36"
                },
                {
                  "expression": {
                    "id": 5063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5061,
                      "name": "registry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4894,
                      "src": "3562:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                        "typeString": "contract WitnetRequestBytecodes"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5062,
                      "name": "_registry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5033,
                      "src": "3573:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                        "typeString": "contract WitnetRequestBytecodes"
                      }
                    },
                    "src": "3562:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                      "typeString": "contract WitnetRequestBytecodes"
                    }
                  },
                  "id": 5064,
                  "nodeType": "ExpressionStatement",
                  "src": "3562:20:36"
                }
              ]
            },
            "id": 5066,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "arguments": [
                      {
                        "expression": {
                          "id": 5044,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "3339:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3343:6:36",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "3339:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3331:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 5042,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3331:7:36",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 5046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3331:19:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 5047,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 5041,
                  "name": "Ownable",
                  "nameLocations": [
                    "3323:7:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 401,
                  "src": "3323:7:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3323:28:36"
              },
              {
                "arguments": [
                  {
                    "id": 5049,
                    "name": "_currency",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5039,
                    "src": "3369:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 5050,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 5048,
                  "name": "Payable",
                  "nameLocations": [
                    "3361:7:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 24145,
                  "src": "3361:7:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3361:18:36"
              },
              {
                "arguments": [
                  {
                    "id": 5052,
                    "name": "_upgradable",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5035,
                    "src": "3424:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  {
                    "id": 5053,
                    "name": "_versionTag",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5037,
                    "src": "3450:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "hexValue": "696f2e7769746e65742e70726f786961626c652e626f617264",
                    "id": 5054,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3476:27:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_9969c6aff411c5e5f0807500693e8f819ce88529615cfa6cab569b24788a1018",
                      "typeString": "literal_string \"io.witnet.proxiable.board\""
                    },
                    "value": "io.witnet.proxiable.board"
                  }
                ],
                "id": 5055,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 5051,
                  "name": "WitnetUpgradableBase",
                  "nameLocations": [
                    "3389:20:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3887,
                  "src": "3389:20:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3389:125:36"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5040,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5030,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nameLocation": "3150:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "3129:29:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                    "typeString": "contract WitnetRequestFactory"
                  },
                  "typeName": {
                    "id": 5029,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5028,
                      "name": "WitnetRequestFactory",
                      "nameLocations": [
                        "3129:20:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 880,
                      "src": "3129:20:36"
                    },
                    "referencedDeclaration": 880,
                    "src": "3129:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                      "typeString": "contract WitnetRequestFactory"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5033,
                  "mutability": "mutable",
                  "name": "_registry",
                  "nameLocation": "3196:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "3173:32:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                    "typeString": "contract WitnetRequestBytecodes"
                  },
                  "typeName": {
                    "id": 5032,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5031,
                      "name": "WitnetRequestBytecodes",
                      "nameLocations": [
                        "3173:22:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 849,
                      "src": "3173:22:36"
                    },
                    "referencedDeclaration": 849,
                    "src": "3173:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                      "typeString": "contract WitnetRequestBytecodes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5035,
                  "mutability": "mutable",
                  "name": "_upgradable",
                  "nameLocation": "3225:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "3220:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5034,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3220:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5037,
                  "mutability": "mutable",
                  "name": "_versionTag",
                  "nameLocation": "3259:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "3251:19:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5036,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3251:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5039,
                  "mutability": "mutable",
                  "name": "_currency",
                  "nameLocation": "3293:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5066,
                  "src": "3285:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5038,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3285:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3114:199:36"
            },
            "returnParameters": {
              "id": 5056,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3520:0:36"
            },
            "scope": 6817,
            "src": "3103:487:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5073,
              "nodeType": "Block",
              "src": "3625:52:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "6e6f207472616e7366657273206163636570746564",
                        "id": 5070,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3645:23:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6a3de9692f94e64d352d00a12d05352c77c858c192f0bd7d2824e77178191cf",
                          "typeString": "literal_string \"no transfers accepted\""
                        },
                        "value": "no transfers accepted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f6a3de9692f94e64d352d00a12d05352c77c858c192f0bd7d2824e77178191cf",
                          "typeString": "literal_string \"no transfers accepted\""
                        }
                      ],
                      "id": 5069,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3816,
                      "src": "3637:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 5071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3637:32:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5072,
                  "nodeType": "ExpressionStatement",
                  "src": "3637:32:36"
                }
              ]
            },
            "id": 5074,
            "implemented": true,
            "kind": "receive",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5067,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3605:2:36"
            },
            "returnParameters": {
              "id": 5068,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3625:0:36"
            },
            "scope": 6817,
            "src": "3598:79:36",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              3754
            ],
            "body": {
              "id": 5139,
              "nodeType": "Block",
              "src": "4046:345:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "6e6f7420696d706c656d656e7465643a203078",
                                "id": 5084,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4104:21:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb",
                                  "typeString": "literal_string \"not implemented: 0x\""
                                },
                                "value": "not implemented: 0x"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "expression": {
                                              "id": 5091,
                                              "name": "msg",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4294967281,
                                              "src": "4172:3:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                              }
                                            },
                                            "id": 5092,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "4176:3:36",
                                            "memberName": "sig",
                                            "nodeType": "MemberAccess",
                                            "src": "4172:7:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 5090,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "4165:6:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 5089,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "4165:6:36",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 5093,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4165:15:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 5088,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4159:5:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 5087,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4159:5:36",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 5094,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4159:22:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 5085,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "4140:6:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 5086,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4147:11:36",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "4140:18:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 5095,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4140:42:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 5105,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 5102,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "4229:3:36",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 5103,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "4233:3:36",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "4229:7:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "38",
                                              "id": 5104,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "4240:1:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "4229:12:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 5101,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "4222:6:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 5100,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "4222:6:36",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 5106,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4222:20:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 5099,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4216:5:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 5098,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4216:5:36",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 5107,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4216:27:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 5096,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "4197:6:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 5097,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4204:11:36",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "4197:18:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 5108,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4197:47:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 5118,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 5115,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "4291:3:36",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 5116,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "4295:3:36",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "4291:7:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "3136",
                                              "id": 5117,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "4302:2:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "4291:13:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 5114,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "4284:6:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 5113,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "4284:6:36",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 5119,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4284:21:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 5112,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4278:5:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 5111,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4278:5:36",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 5120,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4278:28:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 5109,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "4259:6:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 5110,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4266:11:36",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "4259:18:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 5121,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4259:48:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 5131,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 5128,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "4354:3:36",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 5129,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "4358:3:36",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "4354:7:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "3234",
                                              "id": 5130,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "4365:2:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_24_by_1",
                                                "typeString": "int_const 24"
                                              },
                                              "value": "24"
                                            },
                                            "src": "4354:13:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 5127,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "4347:6:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 5126,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "4347:6:36",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 5132,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4347:21:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 5125,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4341:5:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 5124,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4341:5:36",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 5133,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4341:28:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 5122,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "4322:6:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 5123,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4329:11:36",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16596,
                                  "src": "4322:18:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 5134,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4322:48:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb",
                                  "typeString": "literal_string \"not implemented: 0x\""
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "id": 5082,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "4073:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 5083,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "4077:12:36",
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "src": "4073:16:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 5135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4073:308:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 5081,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4066:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": {
                            "id": 5080,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "4066:6:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 5136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4066:316:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5079,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3816,
                      "src": "4058:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 5137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4058:325:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5138,
                  "nodeType": "ExpressionStatement",
                  "src": "4058:325:36"
                }
              ]
            },
            "documentation": {
              "id": 5075,
              "nodeType": "StructuredDocumentation",
              "src": "3685:235:36",
              "text": "@dev Provide backwards compatibility for dapps bound to versions <= 0.6.1\n @dev (i.e. calling methods in IWitnetOracle)\n @dev (Until 'function ... abi(...)' modifier is allegedly supported in solc versions >= 0.9.1)"
            },
            "id": 5140,
            "implemented": true,
            "kind": "fallback",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5077,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4028:8:36"
            },
            "parameters": {
              "id": 5076,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4025:2:36"
            },
            "returnParameters": {
              "id": 5078,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4046:0:36"
            },
            "scope": 6817,
            "src": "4017:374:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              731
            ],
            "body": {
              "id": 5161,
              "nodeType": "Block",
              "src": "4464:85:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 5153,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967268,
                                    "src": "4518:4:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_WitnetOracleTrustableBase_$6817",
                                      "typeString": "contract WitnetOracleTrustableBase"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_WitnetOracleTrustableBase_$6817",
                                      "typeString": "contract WitnetOracleTrustableBase"
                                    }
                                  ],
                                  "id": 5152,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4510:7:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 5151,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4510:7:36",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 5154,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4510:13:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "expression": {
                                  "id": 5155,
                                  "name": "block",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967292,
                                  "src": "4525:5:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_block",
                                    "typeString": "block"
                                  }
                                },
                                "id": 5156,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "4531:7:36",
                                "memberName": "chainid",
                                "nodeType": "MemberAccess",
                                "src": "4525:13:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 5149,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "4499:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 5150,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "4503:6:36",
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "4499:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 5157,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4499:40:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 5148,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "4489:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 5158,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4489:51:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "4482:6:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes4_$",
                        "typeString": "type(bytes4)"
                      },
                      "typeName": {
                        "id": 5146,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "4482:6:36",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 5159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4482:59:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 5145,
                  "id": 5160,
                  "nodeType": "Return",
                  "src": "4475:66:36"
                }
              ]
            },
            "functionSelector": "7bbdb96e",
            "id": 5162,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "channel",
            "nameLocation": "4408:7:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5142,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4426:8:36"
            },
            "parameters": {
              "id": 5141,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4415:2:36"
            },
            "returnParameters": {
              "id": 5145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5144,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5162,
                  "src": "4456:6:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5143,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "4456:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4455:8:36"
            },
            "scope": 6817,
            "src": "4399:150:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              726,
              3765
            ],
            "body": {
              "id": 5175,
              "nodeType": "Block",
              "src": "4696:62:36",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 5171,
                          "name": "WitnetOracleTrustableBase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6817,
                          "src": "4719:25:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableBase_$6817_$",
                            "typeString": "type(contract WitnetOracleTrustableBase)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableBase_$6817_$",
                            "typeString": "type(contract WitnetOracleTrustableBase)"
                          }
                        ],
                        "id": 5170,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "4714:4:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 5172,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4714:31:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitnetOracleTrustableBase_$6817",
                        "typeString": "type(contract WitnetOracleTrustableBase)"
                      }
                    },
                    "id": 5173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "4746:4:36",
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "src": "4714:36:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 5169,
                  "id": 5174,
                  "nodeType": "Return",
                  "src": "4707:43:36"
                }
              ]
            },
            "functionSelector": "bff852fa",
            "id": 5176,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "class",
            "nameLocation": "4566:5:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5166,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 5164,
                  "name": "WitnetOracle",
                  "nameLocations": [
                    "4621:12:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 749,
                  "src": "4621:12:36"
                },
                {
                  "id": 5165,
                  "name": "WitnetUpgradableBase",
                  "nameLocations": [
                    "4635:20:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 3887,
                  "src": "4635:20:36"
                }
              ],
              "src": "4612:44:36"
            },
            "parameters": {
              "id": 5163,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4571:2:36"
            },
            "returnParameters": {
              "id": 5169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5168,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5176,
                  "src": "4676:13:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5167,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4676:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4675:15:36"
            },
            "scope": 6817,
            "src": "4557:201:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              737
            ],
            "body": {
              "id": 5185,
              "nodeType": "Block",
              "src": "4845:35:36",
              "statements": [
                {
                  "expression": {
                    "id": 5183,
                    "name": "__factory",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4897,
                    "src": "4863:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                      "typeString": "contract WitnetRequestFactory"
                    }
                  },
                  "functionReturnParameters": 5182,
                  "id": 5184,
                  "nodeType": "Return",
                  "src": "4856:16:36"
                }
              ]
            },
            "functionSelector": "c45a0155",
            "id": 5186,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nameLocation": "4775:7:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5178,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4793:8:36"
            },
            "parameters": {
              "id": 5177,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4782:2:36"
            },
            "returnParameters": {
              "id": 5182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5181,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5186,
                  "src": "4823:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                    "typeString": "contract WitnetRequestFactory"
                  },
                  "typeName": {
                    "id": 5180,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5179,
                      "name": "WitnetRequestFactory",
                      "nameLocations": [
                        "4823:20:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 880,
                      "src": "4823:20:36"
                    },
                    "referencedDeclaration": 880,
                    "src": "4823:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                      "typeString": "contract WitnetRequestFactory"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4822:22:36"
            },
            "scope": 6817,
            "src": "4766:114:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13105
            ],
            "documentation": {
              "id": 5187,
              "nodeType": "StructuredDocumentation",
              "src": "5138:334:36",
              "text": "@notice Estimate the minimum reward required for posting a data request.\n @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \n @param _gasPrice Expected gas price to pay upon posting the data request.\n @param _resultMaxSize Maximum expected size of returned data (in bytes)."
            },
            "functionSelector": "7bd88218",
            "id": 5196,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFee",
            "nameLocation": "5487:15:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5189,
                  "mutability": "mutable",
                  "name": "_gasPrice",
                  "nameLocation": "5511:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5196,
                  "src": "5503:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5188,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5503:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5191,
                  "mutability": "mutable",
                  "name": "_resultMaxSize",
                  "nameLocation": "5529:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5196,
                  "src": "5522:21:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 5190,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "5522:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5502:42:36"
            },
            "returnParameters": {
              "id": 5195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5194,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5196,
                  "src": "5574:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5193,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5574:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5573:9:36"
            },
            "scope": 6817,
            "src": "5478:105:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13125
            ],
            "documentation": {
              "id": 5197,
              "nodeType": "StructuredDocumentation",
              "src": "5592:273:36",
              "text": "@notice Estimate the minimum reward required for posting a data request with a callback.\n @param _gasPrice Expected gas price to pay upon posting the data request.\n @param _callbackGasLimit Maximum gas to be spent when reporting the data request result."
            },
            "functionSelector": "05e742ef",
            "id": 5206,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFeeWithCallback",
            "nameLocation": "5880:27:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5199,
                  "mutability": "mutable",
                  "name": "_gasPrice",
                  "nameLocation": "5916:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5206,
                  "src": "5908:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5198,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5908:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5201,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "5934:17:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5206,
                  "src": "5927:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 5200,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "5927:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5907:45:36"
            },
            "returnParameters": {
              "id": 5205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5204,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5206,
                  "src": "5982:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5982:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5981:9:36"
            },
            "scope": 6817,
            "src": "5871:120:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              24297
            ],
            "body": {
              "id": 5377,
              "nodeType": "Block",
              "src": "6509:1543:36",
              "statements": [
                {
                  "assignments": [
                    5214
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5214,
                      "mutability": "mutable",
                      "name": "_owner",
                      "nameLocation": "6528:6:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 5377,
                      "src": "6520:14:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5213,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "6520:7:36",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5217,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5215,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 321,
                      "src": "6537:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 5216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6537:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6520:24:36"
                },
                {
                  "assignments": [
                    5222
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5222,
                      "mutability": "mutable",
                      "name": "_newReporters",
                      "nameLocation": "6572:13:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 5377,
                      "src": "6555:30:36",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 5220,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6555:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 5221,
                        "nodeType": "ArrayTypeName",
                        "src": "6555:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5223,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6555:30:36"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 5229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5224,
                      "name": "_owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5214,
                      "src": "6602:6:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 5227,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6620:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 5226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6612:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 5225,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6612:7:36",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 5228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6612:10:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6602:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 5282,
                    "nodeType": "Block",
                    "src": "6939:276:36",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 5267,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 5264,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967281,
                                  "src": "7024:3:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 5265,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7028:6:36",
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "src": "7024:10:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 5266,
                                "name": "_owner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5214,
                                "src": "7038:6:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "7024:20:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "6e6f7420746865206f776e6572",
                              "id": 5268,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7063:15:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_09ee694bb6d0f66081e15dd53293c7f941705ae2fd8f9732918eb9f8e2ff3219",
                                "typeString": "literal_string \"not the owner\""
                              },
                              "value": "not the owner"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_09ee694bb6d0f66081e15dd53293c7f941705ae2fd8f9732918eb9f8e2ff3219",
                                "typeString": "literal_string \"not the owner\""
                              }
                            ],
                            "id": 5263,
                            "name": "_require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3797,
                            "src": "6997:8:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) view"
                            }
                          },
                          "id": 5269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6997:96:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5270,
                        "nodeType": "ExpressionStatement",
                        "src": "6997:96:36"
                      },
                      {
                        "expression": {
                          "id": 5280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5271,
                            "name": "_newReporters",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5222,
                            "src": "7153:13:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 5274,
                                "name": "_initData",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5209,
                                "src": "7180:9:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "components": [
                                  {
                                    "baseExpression": {
                                      "id": 5276,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "7192:7:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": {
                                        "id": 5275,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7192:7:36",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 5277,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "7192:9:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                      "typeString": "type(address[] memory)"
                                    }
                                  }
                                ],
                                "id": 5278,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "7191:11:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                  "typeString": "type(address[] memory)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                  "typeString": "type(address[] memory)"
                                }
                              ],
                              "expression": {
                                "id": 5272,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "7169:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 5273,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "7173:6:36",
                              "memberName": "decode",
                              "nodeType": "MemberAccess",
                              "src": "7169:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 5279,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7169:34:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "src": "7153:50:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "id": 5281,
                        "nodeType": "ExpressionStatement",
                        "src": "7153:50:36"
                      }
                    ]
                  },
                  "id": 5283,
                  "nodeType": "IfStatement",
                  "src": "6598:617:36",
                  "trueBody": {
                    "id": 5262,
                    "nodeType": "Block",
                    "src": "6624:309:36",
                    "statements": [
                      {
                        "assignments": [
                          5231
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5231,
                            "mutability": "mutable",
                            "name": "_newReportersRaw",
                            "nameLocation": "6709:16:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 5262,
                            "src": "6696:29:36",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 5230,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "6696:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 5232,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6696:29:36"
                      },
                      {
                        "expression": {
                          "id": 5245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "components": [
                              {
                                "id": 5233,
                                "name": "_owner",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5214,
                                "src": "6741:6:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 5234,
                                "name": "_newReportersRaw",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5231,
                                "src": "6749:16:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "id": 5235,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "6740:26:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_ptr_$",
                              "typeString": "tuple(address,bytes memory)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 5238,
                                "name": "_initData",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5209,
                                "src": "6780:9:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "components": [
                                  {
                                    "id": 5240,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "6792:7:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": {
                                      "id": 5239,
                                      "name": "address",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "6792:7:36",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  {
                                    "id": 5242,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "6801:5:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                      "typeString": "type(bytes storage pointer)"
                                    },
                                    "typeName": {
                                      "id": 5241,
                                      "name": "bytes",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "6801:5:36",
                                      "typeDescriptions": {}
                                    }
                                  }
                                ],
                                "id": 5243,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "6791:16:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$",
                                  "typeString": "tuple(type(address),type(bytes storage pointer))"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$",
                                  "typeString": "tuple(type(address),type(bytes storage pointer))"
                                }
                              ],
                              "expression": {
                                "id": 5236,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "6769:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 5237,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "6773:6:36",
                              "memberName": "decode",
                              "nodeType": "MemberAccess",
                              "src": "6769:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 5244,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6769:39:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$",
                              "typeString": "tuple(address payable,bytes memory)"
                            }
                          },
                          "src": "6740:68:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5246,
                        "nodeType": "ExpressionStatement",
                        "src": "6740:68:36"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 5248,
                              "name": "_owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5214,
                              "src": "6842:6:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 5247,
                            "name": "_transferOwnership",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              24069
                            ],
                            "referencedDeclaration": 24069,
                            "src": "6823:18:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 5249,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6823:26:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5250,
                        "nodeType": "ExpressionStatement",
                        "src": "6823:26:36"
                      },
                      {
                        "expression": {
                          "id": 5260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5251,
                            "name": "_newReporters",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5222,
                            "src": "6864:13:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 5254,
                                "name": "_newReportersRaw",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5231,
                                "src": "6891:16:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "components": [
                                  {
                                    "baseExpression": {
                                      "id": 5256,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "6910:7:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": {
                                        "id": 5255,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6910:7:36",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 5257,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6910:9:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                      "typeString": "type(address[] memory)"
                                    }
                                  }
                                ],
                                "id": 5258,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "6909:11:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                  "typeString": "type(address[] memory)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                  "typeString": "type(address[] memory)"
                                }
                              ],
                              "expression": {
                                "id": 5252,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "6880:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 5253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "6884:6:36",
                              "memberName": "decode",
                              "nodeType": "MemberAccess",
                              "src": "6880:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 5259,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6880:41:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "src": "6864:57:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "id": 5261,
                        "nodeType": "ExpressionStatement",
                        "src": "6864:57:36"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 5298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 5291,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5284,
                            "name": "__proxiable",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24188,
                            "src": "7245:11:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ProxiableSlot_$24160_storage_ptr_$",
                              "typeString": "function () pure returns (struct Proxiable.ProxiableSlot storage pointer)"
                            }
                          },
                          "id": 5285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7245:13:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ProxiableSlot_$24160_storage_ptr",
                            "typeString": "struct Proxiable.ProxiableSlot storage pointer"
                          }
                        },
                        "id": 5286,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7259:8:36",
                        "memberName": "codehash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24159,
                        "src": "7245:22:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 5289,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7279:1:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 5288,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7271:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 5287,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7271:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 5290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7271:10:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "7245:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 5297,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5292,
                            "name": "__proxiable",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24188,
                            "src": "7302:11:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ProxiableSlot_$24160_storage_ptr_$",
                              "typeString": "function () pure returns (struct Proxiable.ProxiableSlot storage pointer)"
                            }
                          },
                          "id": 5293,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7302:13:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ProxiableSlot_$24160_storage_ptr",
                            "typeString": "struct Proxiable.ProxiableSlot storage pointer"
                          }
                        },
                        "id": 5294,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7316:8:36",
                        "memberName": "codehash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 24159,
                        "src": "7302:22:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5295,
                          "name": "codehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24274,
                          "src": "7328:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view returns (bytes32)"
                          }
                        },
                        "id": 5296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7328:10:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "7302:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7245:93:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5304,
                  "nodeType": "IfStatement",
                  "src": "7227:177:36",
                  "trueBody": {
                    "id": 5303,
                    "nodeType": "Block",
                    "src": "7350:54:36",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "hexValue": "616c7265616479207570677261646564",
                              "id": 5300,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7373:18:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_0874fe46152e5f576dc8521dafd485d79cf0bcc0323d1f1989bcdfe1b830c75c",
                                "typeString": "literal_string \"already upgraded\""
                              },
                              "value": "already upgraded"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_0874fe46152e5f576dc8521dafd485d79cf0bcc0323d1f1989bcdfe1b830c75c",
                                "typeString": "literal_string \"already upgraded\""
                              }
                            ],
                            "id": 5299,
                            "name": "_revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3816,
                            "src": "7365:7:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) view"
                            }
                          },
                          "id": 5301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7365:27:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5302,
                        "nodeType": "ExpressionStatement",
                        "src": "7365:27:36"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 5310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5305,
                          "name": "__proxiable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24188,
                          "src": "7414:11:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ProxiableSlot_$24160_storage_ptr_$",
                            "typeString": "function () pure returns (struct Proxiable.ProxiableSlot storage pointer)"
                          }
                        },
                        "id": 5306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7414:13:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProxiableSlot_$24160_storage_ptr",
                          "typeString": "struct Proxiable.ProxiableSlot storage pointer"
                        }
                      },
                      "id": 5307,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "7428:8:36",
                      "memberName": "codehash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24159,
                      "src": "7414:22:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5308,
                        "name": "codehash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24274,
                        "src": "7439:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
                          "typeString": "function () view returns (bytes32)"
                        }
                      },
                      "id": 5309,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7439:10:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7414:35:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5311,
                  "nodeType": "ExpressionStatement",
                  "src": "7414:35:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5320,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 5315,
                                  "name": "__factory",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4897,
                                  "src": "7493:9:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                                    "typeString": "contract WitnetRequestFactory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                                    "typeString": "contract WitnetRequestFactory"
                                  }
                                ],
                                "id": 5314,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "7485:7:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 5313,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7485:7:36",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 5316,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7485:18:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 5317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7504:4:36",
                            "memberName": "code",
                            "nodeType": "MemberAccess",
                            "src": "7485:23:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 5318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "7509:6:36",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "7485:30:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 5319,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7518:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7485:34:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e6578697374656e7420666163746f7279",
                        "id": 5321,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7534:20:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b88cad6f0896ef5baae7f4b1e3d9524cd3da030707a9a99bb20a0f62a6b7d8ce",
                          "typeString": "literal_string \"inexistent factory\""
                        },
                        "value": "inexistent factory"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b88cad6f0896ef5baae7f4b1e3d9524cd3da030707a9a99bb20a0f62a6b7d8ce",
                          "typeString": "literal_string \"inexistent factory\""
                        }
                      ],
                      "id": 5312,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "7462:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7462:103:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5323,
                  "nodeType": "ExpressionStatement",
                  "src": "7462:103:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 5332,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 5325,
                              "name": "__factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4897,
                              "src": "7599:9:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                                "typeString": "contract WitnetRequestFactory"
                              }
                            },
                            "id": 5326,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7609:5:36",
                            "memberName": "specs",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 873,
                            "src": "7599:15:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_bytes4_$",
                              "typeString": "function () view external returns (bytes4)"
                            }
                          },
                          "id": 5327,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7599:17:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 5329,
                                "name": "IWitnetRequestFactory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14002,
                                "src": "7625:21:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IWitnetRequestFactory_$14002_$",
                                  "typeString": "type(contract IWitnetRequestFactory)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_contract$_IWitnetRequestFactory_$14002_$",
                                  "typeString": "type(contract IWitnetRequestFactory)"
                                }
                              ],
                              "id": 5328,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967269,
                              "src": "7620:4:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 5330,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7620:27:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_contract$_IWitnetRequestFactory_$14002",
                              "typeString": "type(contract IWitnetRequestFactory)"
                            }
                          },
                          "id": 5331,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "7648:11:36",
                          "memberName": "interfaceId",
                          "nodeType": "MemberAccess",
                          "src": "7620:39:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "7599:60:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e636f6d706c69616e7420666163746f7279",
                        "id": 5333,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7675:21:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a2715cc77a1a5a15233657d4653f2a36e45366a294d463eb57fcb1f87a71d04a",
                          "typeString": "literal_string \"uncompliant factory\""
                        },
                        "value": "uncompliant factory"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a2715cc77a1a5a15233657d4653f2a36e45366a294d463eb57fcb1f87a71d04a",
                          "typeString": "literal_string \"uncompliant factory\""
                        }
                      ],
                      "id": 5324,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "7576:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7576:131:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5335,
                  "nodeType": "ExpressionStatement",
                  "src": "7576:131:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5347,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 5339,
                                    "name": "__factory",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4897,
                                    "src": "7749:9:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                                      "typeString": "contract WitnetRequestFactory"
                                    }
                                  },
                                  "id": 5340,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7759:6:36",
                                  "memberName": "witnet",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 879,
                                  "src": "7749:16:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_WitnetOracle_$749_$",
                                    "typeString": "function () view external returns (contract WitnetOracle)"
                                  }
                                },
                                "id": 5341,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7749:18:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_WitnetOracle_$749",
                                  "typeString": "contract WitnetOracle"
                                }
                              ],
                              "id": 5338,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7741:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5337,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7741:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5342,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7741:27:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 5345,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967268,
                                "src": "7780:4:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetOracleTrustableBase_$6817",
                                  "typeString": "contract WitnetOracleTrustableBase"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_WitnetOracleTrustableBase_$6817",
                                  "typeString": "contract WitnetOracleTrustableBase"
                                }
                              ],
                              "id": 5344,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7772:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5343,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7772:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5346,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7772:13:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "7741:44:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5358,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 5350,
                                    "name": "__factory",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4897,
                                    "src": "7815:9:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                                      "typeString": "contract WitnetRequestFactory"
                                    }
                                  },
                                  "id": 5351,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7825:8:36",
                                  "memberName": "registry",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 868,
                                  "src": "7815:18:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_WitnetRequestBytecodes_$849_$",
                                    "typeString": "function () view external returns (contract WitnetRequestBytecodes)"
                                  }
                                },
                                "id": 5352,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7815:20:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                  "typeString": "contract WitnetRequestBytecodes"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                  "typeString": "contract WitnetRequestBytecodes"
                                }
                              ],
                              "id": 5349,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7807:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5348,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7807:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5353,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7807:29:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 5356,
                                "name": "registry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4894,
                                "src": "7848:8:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                  "typeString": "contract WitnetRequestBytecodes"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                  "typeString": "contract WitnetRequestBytecodes"
                                }
                              ],
                              "id": 5355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7840:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5354,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7840:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5357,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7840:17:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "7807:50:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7741:116:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "646973636f7264616e7420666163746f7279",
                        "id": 5360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7872:20:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_56fc44464b2314d943918c8fa42173fcfc39617e62c6e8a5e625a03e9ff7458f",
                          "typeString": "literal_string \"discordant factory\""
                        },
                        "value": "discordant factory"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_56fc44464b2314d943918c8fa42173fcfc39617e62c6e8a5e625a03e9ff7458f",
                          "typeString": "literal_string \"discordant factory\""
                        }
                      ],
                      "id": 5336,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "7718:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7718:185:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5362,
                  "nodeType": "ExpressionStatement",
                  "src": "7718:185:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5364,
                        "name": "_newReporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5222,
                        "src": "7965:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "id": 5363,
                      "name": "__setReporters",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6771,
                      "src": "7950:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 5365,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7950:29:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5366,
                  "nodeType": "ExpressionStatement",
                  "src": "7950:29:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 5368,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5214,
                        "src": "8006:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5369,
                          "name": "base",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24262,
                          "src": "8014:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 5370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8014:6:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5371,
                          "name": "codehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24274,
                          "src": "8022:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view returns (bytes32)"
                          }
                        },
                        "id": 5372,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8022:10:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5373,
                          "name": "version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            3781
                          ],
                          "referencedDeclaration": 3781,
                          "src": "8034:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
                            "typeString": "function () view returns (string memory)"
                          }
                        },
                        "id": 5374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8034:9:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 5367,
                      "name": "Upgraded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24232,
                      "src": "7997:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes32,string memory)"
                      }
                    },
                    "id": 5375,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7997:47:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5376,
                  "nodeType": "EmitStatement",
                  "src": "7992:52:36"
                }
              ]
            },
            "documentation": {
              "id": 5207,
              "nodeType": "StructuredDocumentation",
              "src": "6249:171:36",
              "text": "@notice Re-initialize contract's storage context upon a new upgrade from a proxy.\n @dev Must fail when trying to upgrade to same logic contract more than once."
            },
            "functionSelector": "439fab91",
            "id": 5378,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nameLocation": "6435:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5211,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6495:8:36"
            },
            "parameters": {
              "id": 5210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5209,
                  "mutability": "mutable",
                  "name": "_initData",
                  "nameLocation": "6459:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5378,
                  "src": "6446:22:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5208,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6446:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6445:24:36"
            },
            "returnParameters": {
              "id": 5212,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6509:0:36"
            },
            "scope": 6817,
            "src": "6426:1626:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              24291
            ],
            "body": {
              "id": 5396,
              "nodeType": "Block",
              "src": "8218:192:36",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5387,
                            "name": "isUpgradable",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24283,
                            "src": "8340:12:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                              "typeString": "function () view returns (bool)"
                            }
                          },
                          "id": 5388,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8340:14:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5392,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 5389,
                              "name": "owner",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 321,
                              "src": "8375:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                "typeString": "function () view returns (address)"
                              }
                            },
                            "id": 5390,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8375:7:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 5391,
                            "name": "_from",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5381,
                            "src": "8386:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "8375:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8340:51:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 5394,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "8236:166:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5386,
                  "id": 5395,
                  "nodeType": "Return",
                  "src": "8229:173:36"
                }
              ]
            },
            "documentation": {
              "id": 5379,
              "nodeType": "StructuredDocumentation",
              "src": "8060:73:36",
              "text": "Tells whether provided address could eventually upgrade the contract."
            },
            "functionSelector": "6b58960a",
            "id": 5397,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isUpgradableFrom",
            "nameLocation": "8148:16:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5383,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8194:8:36"
            },
            "parameters": {
              "id": 5382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5381,
                  "mutability": "mutable",
                  "name": "_from",
                  "nameLocation": "8173:5:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5397,
                  "src": "8165:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5380,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8165:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8164:15:36"
            },
            "returnParameters": {
              "id": 5386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5385,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5397,
                  "src": "8212:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5384,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8212:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8211:6:36"
            },
            "scope": 6817,
            "src": "8139:271:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13115
            ],
            "body": {
              "id": 5427,
              "nodeType": "Block",
              "src": "9172:280:36",
              "statements": [
                {
                  "assignments": [
                    5409
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5409,
                      "mutability": "mutable",
                      "name": "_resultMaxSize",
                      "nameLocation": "9190:14:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 5427,
                      "src": "9183:21:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      },
                      "typeName": {
                        "id": 5408,
                        "name": "uint16",
                        "nodeType": "ElementaryTypeName",
                        "src": "9183:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5414,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5412,
                        "name": "radHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5402,
                        "src": "9248:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 5410,
                        "name": "registry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4894,
                        "src": "9207:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                          "typeString": "contract WitnetRequestBytecodes"
                        }
                      },
                      "id": 5411,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9216:31:36",
                      "memberName": "lookupRadonRequestResultMaxSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13897,
                      "src": "9207:40:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint16_$",
                        "typeString": "function (bytes32) view external returns (uint16)"
                      }
                    },
                    "id": 5413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9207:49:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9183:73:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "id": 5418,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 5416,
                          "name": "_resultMaxSize",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5409,
                          "src": "9290:14:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 5417,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9307:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9290:18:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420524144",
                        "id": 5419,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9324:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_de091a9c3e623b8e7b770e09a8ee97d5ca453caa5e436ea0fe63e0ee82191898",
                          "typeString": "literal_string \"invalid RAD\""
                        },
                        "value": "invalid RAD"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_de091a9c3e623b8e7b770e09a8ee97d5ca453caa5e436ea0fe63e0ee82191898",
                          "typeString": "literal_string \"invalid RAD\""
                        }
                      ],
                      "id": 5415,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "9267:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5420,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9267:81:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5421,
                  "nodeType": "ExpressionStatement",
                  "src": "9267:81:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5423,
                        "name": "gasPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5400,
                        "src": "9396:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5424,
                        "name": "_resultMaxSize",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5409,
                        "src": "9419:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      ],
                      "id": 5422,
                      "name": "estimateBaseFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5196,
                        5428
                      ],
                      "referencedDeclaration": 5196,
                      "src": "9366:15:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint16_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint16) view returns (uint256)"
                      }
                    },
                    "id": 5425,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9366:78:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5407,
                  "id": 5426,
                  "nodeType": "Return",
                  "src": "9359:85:36"
                }
              ]
            },
            "documentation": {
              "id": 5398,
              "nodeType": "StructuredDocumentation",
              "src": "8658:369:36",
              "text": "@notice Estimate the minimum reward required for posting a data request.\n @dev Underestimates if the size of returned data is greater than `resultMaxSize`. \n @param gasPrice Expected gas price to pay upon posting the data request.\n @param radHash The hash of some Witnet Data Request previously posted in the WitnetRequestBytecodes registry."
            },
            "functionSelector": "9cc56e67",
            "id": 5428,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFee",
            "nameLocation": "9042:15:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5404,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9131:8:36"
            },
            "parameters": {
              "id": 5403,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5400,
                  "mutability": "mutable",
                  "name": "gasPrice",
                  "nameLocation": "9066:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5428,
                  "src": "9058:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9058:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5402,
                  "mutability": "mutable",
                  "name": "radHash",
                  "nameLocation": "9084:7:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5428,
                  "src": "9076:15:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5401,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9076:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9057:35:36"
            },
            "returnParameters": {
              "id": 5407,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5406,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5428,
                  "src": "9158:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5405,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9158:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9157:9:36"
            },
            "scope": 6817,
            "src": "9033:419:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13134
            ],
            "body": {
              "id": 5462,
              "nodeType": "Block",
              "src": "10078:138:36",
              "statements": [
                {
                  "expression": {
                    "id": 5453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5447,
                      "name": "_response",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5445,
                      "src": "10089:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                        "typeString": "struct WitnetV2.Response memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 5450,
                            "name": "_witnetQueryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5431,
                            "src": "10131:14:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 5448,
                            "name": "WitnetOracleDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12396,
                            "src": "10101:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                              "typeString": "type(library WitnetOracleDataLib)"
                            }
                          },
                          "id": 5449,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10121:9:36",
                          "memberName": "seekQuery",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12075,
                          "src": "10101:29:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Query_$23455_storage_ptr_$",
                            "typeString": "function (uint256) view returns (struct WitnetV2.Query storage pointer)"
                          }
                        },
                        "id": 5451,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10101:45:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$23455_storage_ptr",
                          "typeString": "struct WitnetV2.Query storage pointer"
                        }
                      },
                      "id": 5452,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10147:8:36",
                      "memberName": "response",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23454,
                      "src": "10101:54:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$23488_storage",
                        "typeString": "struct WitnetV2.Response storage ref"
                      }
                    },
                    "src": "10089:66:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                      "typeString": "struct WitnetV2.Response memory"
                    }
                  },
                  "id": 5454,
                  "nodeType": "ExpressionStatement",
                  "src": "10089:66:36"
                },
                {
                  "expression": {
                    "id": 5460,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "10166:42:36",
                    "subExpression": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5455,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6783,
                            "src": "10173:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 5456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10173:11:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                            "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                          }
                        },
                        "id": 5457,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "10185:7:36",
                        "memberName": "queries",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12031,
                        "src": "10173:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Query_$23455_storage_$",
                          "typeString": "mapping(uint256 => struct WitnetV2.Query storage ref)"
                        }
                      },
                      "id": 5459,
                      "indexExpression": {
                        "id": 5458,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5431,
                        "src": "10193:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10173:35:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Query_$23455_storage",
                        "typeString": "struct WitnetV2.Query storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5461,
                  "nodeType": "ExpressionStatement",
                  "src": "10166:42:36"
                }
              ]
            },
            "documentation": {
              "id": 5429,
              "nodeType": "StructuredDocumentation",
              "src": "9460:352:36",
              "text": "Retrieves copy of all response data related to a previously posted request, removing the whole query from storage.\n @dev Fails if the `_witnetQueryId` is not in 'Reported' status, or called from an address different to\n @dev the one that actually posted the given request.\n @param _witnetQueryId The unique query identifier."
            },
            "functionSelector": "08b7e85e",
            "id": 5463,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 5435,
                    "name": "_witnetQueryId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5431,
                    "src": "9932:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "expression": {
                      "expression": {
                        "id": 5436,
                        "name": "WitnetV2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23640,
                        "src": "9948:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                          "typeString": "type(library WitnetV2)"
                        }
                      },
                      "id": 5437,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9957:11:36",
                      "memberName": "QueryStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23461,
                      "src": "9948:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                        "typeString": "type(enum WitnetV2.QueryStatus)"
                      }
                    },
                    "id": 5438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "9969:9:36",
                    "memberName": "Finalized",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 23460,
                    "src": "9948:30:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  }
                ],
                "id": 5439,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5434,
                  "name": "inStatus",
                  "nameLocations": [
                    "9923:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4993,
                  "src": "9923:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "9923:56:36"
              },
              {
                "arguments": [
                  {
                    "id": 5441,
                    "name": "_witnetQueryId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5431,
                    "src": "10003:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5442,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5440,
                  "name": "onlyRequester",
                  "nameLocations": [
                    "9989:13:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5012,
                  "src": "9989:13:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "9989:29:36"
              }
            ],
            "name": "fetchQueryResponse",
            "nameLocation": "9827:18:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5433,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9887:8:36"
            },
            "parameters": {
              "id": 5432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5431,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "9854:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5463,
                  "src": "9846:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5430,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9846:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9845:24:36"
            },
            "returnParameters": {
              "id": 5446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5445,
                  "mutability": "mutable",
                  "name": "_response",
                  "nameLocation": "10062:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5463,
                  "src": "10037:34:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                    "typeString": "struct WitnetV2.Response"
                  },
                  "typeName": {
                    "id": 5444,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5443,
                      "name": "WitnetV2.Response",
                      "nameLocations": [
                        "10037:8:36",
                        "10046:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23488,
                      "src": "10037:17:36"
                    },
                    "referencedDeclaration": 23488,
                    "src": "10037:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                      "typeString": "struct WitnetV2.Response"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10036:36:36"
            },
            "scope": 6817,
            "src": "9818:398:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13143
            ],
            "body": {
              "id": 5479,
              "nodeType": "Block",
              "src": "10436:61:36",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5473,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6783,
                          "src": "10454:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 5474,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10454:11:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                          "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                        }
                      },
                      "id": 5475,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10466:7:36",
                      "memberName": "queries",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12031,
                      "src": "10454:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Query_$23455_storage_$",
                        "typeString": "mapping(uint256 => struct WitnetV2.Query storage ref)"
                      }
                    },
                    "id": 5477,
                    "indexExpression": {
                      "id": 5476,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5466,
                      "src": "10474:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10454:35:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$23455_storage",
                      "typeString": "struct WitnetV2.Query storage ref"
                    }
                  },
                  "functionReturnParameters": 5472,
                  "id": 5478,
                  "nodeType": "Return",
                  "src": "10447:42:36"
                }
              ]
            },
            "documentation": {
              "id": 5464,
              "nodeType": "StructuredDocumentation",
              "src": "10224:77:36",
              "text": "Gets the whole Query data contents, if any, no matter its current status."
            },
            "functionSelector": "aeb2ffc1",
            "id": 5480,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQuery",
            "nameLocation": "10316:8:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5468,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10383:8:36"
            },
            "parameters": {
              "id": 5467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5466,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "10333:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5480,
                  "src": "10325:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5465,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10325:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10324:24:36"
            },
            "returnParameters": {
              "id": 5472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5471,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5480,
                  "src": "10408:21:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Query_$23455_memory_ptr",
                    "typeString": "struct WitnetV2.Query"
                  },
                  "typeName": {
                    "id": 5470,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5469,
                      "name": "WitnetV2.Query",
                      "nameLocations": [
                        "10408:8:36",
                        "10417:5:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23455,
                      "src": "10408:14:36"
                    },
                    "referencedDeclaration": 23455,
                    "src": "10408:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Query_$23455_storage_ptr",
                      "typeString": "struct WitnetV2.Query"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10407:23:36"
            },
            "scope": 6817,
            "src": "10307:190:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13151
            ],
            "body": {
              "id": 5497,
              "nodeType": "Block",
              "src": "10723:79:36",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "baseExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 5489,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6783,
                              "src": "10741:9:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                              }
                            },
                            "id": 5490,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10741:11:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                              "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                            }
                          },
                          "id": 5491,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10753:7:36",
                          "memberName": "queries",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12031,
                          "src": "10741:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Query_$23455_storage_$",
                            "typeString": "mapping(uint256 => struct WitnetV2.Query storage ref)"
                          }
                        },
                        "id": 5493,
                        "indexExpression": {
                          "id": 5492,
                          "name": "_witnetQueryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5483,
                          "src": "10761:14:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10741:35:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$23455_storage",
                          "typeString": "struct WitnetV2.Query storage ref"
                        }
                      },
                      "id": 5494,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10777:7:36",
                      "memberName": "request",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23451,
                      "src": "10741:43:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$23476_storage",
                        "typeString": "struct WitnetV2.Request storage ref"
                      }
                    },
                    "id": 5495,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "10785:9:36",
                    "memberName": "evmReward",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 23468,
                    "src": "10741:53:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint72",
                      "typeString": "uint72"
                    }
                  },
                  "functionReturnParameters": 5488,
                  "id": 5496,
                  "nodeType": "Return",
                  "src": "10734:60:36"
                }
              ]
            },
            "documentation": {
              "id": 5481,
              "nodeType": "StructuredDocumentation",
              "src": "10505:78:36",
              "text": "@notice Gets the current EVM reward the report can claim, if not done yet."
            },
            "functionSelector": "6fdaab7e",
            "id": 5498,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryEvmReward",
            "nameLocation": "10598:17:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5485,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10682:8:36"
            },
            "parameters": {
              "id": 5484,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5483,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "10624:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5498,
                  "src": "10616:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5482,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10616:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10615:24:36"
            },
            "returnParameters": {
              "id": 5488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5487,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5498,
                  "src": "10709:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5486,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10709:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10708:9:36"
            },
            "scope": 6817,
            "src": "10589:213:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13160
            ],
            "body": {
              "id": 5513,
              "nodeType": "Block",
              "src": "11088:78:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5510,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5501,
                        "src": "11143:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5508,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "11106:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 5509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11126:16:36",
                      "memberName": "seekQueryRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12092,
                      "src": "11106:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                      }
                    },
                    "id": 5511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11106:52:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                      "typeString": "struct WitnetV2.Request storage pointer"
                    }
                  },
                  "functionReturnParameters": 5507,
                  "id": 5512,
                  "nodeType": "Return",
                  "src": "11099:59:36"
                }
              ]
            },
            "documentation": {
              "id": 5499,
              "nodeType": "StructuredDocumentation",
              "src": "10810:133:36",
              "text": "@notice Retrieves the RAD hash and SLA parameters of the given query.\n @param _witnetQueryId The unique query identifier."
            },
            "functionSelector": "0aa4112a",
            "id": 5514,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryRequest",
            "nameLocation": "10958:15:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5503,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11031:8:36"
            },
            "parameters": {
              "id": 5502,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5501,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "10982:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5514,
                  "src": "10974:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5500,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10974:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10973:24:36"
            },
            "returnParameters": {
              "id": 5507,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5506,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5514,
                  "src": "11058:23:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$23476_memory_ptr",
                    "typeString": "struct WitnetV2.Request"
                  },
                  "typeName": {
                    "id": 5505,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5504,
                      "name": "WitnetV2.Request",
                      "nameLocations": [
                        "11058:8:36",
                        "11067:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23476,
                      "src": "11058:16:36"
                    },
                    "referencedDeclaration": 23476,
                    "src": "11058:16:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                      "typeString": "struct WitnetV2.Request"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11057:25:36"
            },
            "scope": 6817,
            "src": "10949:217:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13169
            ],
            "body": {
              "id": 5529,
              "nodeType": "Block",
              "src": "11549:79:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5526,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5517,
                        "src": "11605:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5524,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "11567:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 5525,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11587:17:36",
                      "memberName": "seekQueryResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12109,
                      "src": "11567:37:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Response_$23488_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitnetV2.Response storage pointer)"
                      }
                    },
                    "id": 5527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11567:53:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                      "typeString": "struct WitnetV2.Response storage pointer"
                    }
                  },
                  "functionReturnParameters": 5523,
                  "id": 5528,
                  "nodeType": "Return",
                  "src": "11560:60:36"
                }
              ]
            },
            "documentation": {
              "id": 5515,
              "nodeType": "StructuredDocumentation",
              "src": "11174:223:36",
              "text": "Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \n @dev Fails if the `_witnetQueryId` is not in 'Reported' status.\n @param _witnetQueryId The unique query identifier"
            },
            "functionSelector": "f61921b2",
            "id": 5530,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResponse",
            "nameLocation": "11412:16:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5519,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11491:8:36"
            },
            "parameters": {
              "id": 5518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5517,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "11437:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5530,
                  "src": "11429:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5516,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11429:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11428:24:36"
            },
            "returnParameters": {
              "id": 5523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5522,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5530,
                  "src": "11518:24:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                    "typeString": "struct WitnetV2.Response"
                  },
                  "typeName": {
                    "id": 5521,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5520,
                      "name": "WitnetV2.Response",
                      "nameLocations": [
                        "11518:8:36",
                        "11527:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23488,
                      "src": "11518:17:36"
                    },
                    "referencedDeclaration": 23488,
                    "src": "11518:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                      "typeString": "struct WitnetV2.Response"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11517:26:36"
            },
            "scope": 6817,
            "src": "11403:225:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13178
            ],
            "body": {
              "id": 5545,
              "nodeType": "Block",
              "src": "12231:85:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5542,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5533,
                        "src": "12293:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5540,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "12249:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 5541,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12269:23:36",
                      "memberName": "seekQueryResponseStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12262,
                      "src": "12249:43:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                        "typeString": "function (uint256) view returns (enum WitnetV2.ResponseStatus)"
                      }
                    },
                    "id": 5543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12249:59:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    }
                  },
                  "functionReturnParameters": 5539,
                  "id": 5544,
                  "nodeType": "Return",
                  "src": "12242:66:36"
                }
              ]
            },
            "documentation": {
              "id": 5531,
              "nodeType": "StructuredDocumentation",
              "src": "11636:447:36",
              "text": "@notice Returns query's result current status from a requester's point of view:\n @notice   - 0 => Void: the query is either non-existent or deleted;\n @notice   - 1 => Awaiting: the query has not yet been reported;\n @notice   - 2 => Ready: the query has been succesfully solved;\n @notice   - 3 => Error: the query couldn't get solved due to some issue.\n @param _witnetQueryId The unique query identifier."
            },
            "functionSelector": "234fe6e3",
            "id": 5546,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResponseStatus",
            "nameLocation": "12098:22:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5535,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12162:8:36"
            },
            "parameters": {
              "id": 5534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5533,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "12129:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5546,
                  "src": "12121:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5532,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12121:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12120:24:36"
            },
            "returnParameters": {
              "id": 5539,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5538,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5546,
                  "src": "12201:23:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                    "typeString": "enum WitnetV2.ResponseStatus"
                  },
                  "typeName": {
                    "id": 5537,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5536,
                      "name": "WitnetV2.ResponseStatus",
                      "nameLocations": [
                        "12201:8:36",
                        "12210:14:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23496,
                      "src": "12201:23:36"
                    },
                    "referencedDeclaration": 23496,
                    "src": "12201:23:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12200:25:36"
            },
            "scope": 6817,
            "src": "12089:227:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13186
            ],
            "body": {
              "id": 5561,
              "nodeType": "Block",
              "src": "12638:95:36",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 5557,
                          "name": "_witnetQueryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5549,
                          "src": "12694:14:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 5555,
                          "name": "WitnetOracleDataLib",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12396,
                          "src": "12656:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                            "typeString": "type(library WitnetOracleDataLib)"
                          }
                        },
                        "id": 5556,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "12676:17:36",
                        "memberName": "seekQueryResponse",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12109,
                        "src": "12656:37:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Response_$23488_storage_ptr_$",
                          "typeString": "function (uint256) view returns (struct WitnetV2.Response storage pointer)"
                        }
                      },
                      "id": 5558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12656:53:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                        "typeString": "struct WitnetV2.Response storage pointer"
                      }
                    },
                    "id": 5559,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "12710:15:36",
                    "memberName": "resultCborBytes",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 23487,
                    "src": "12656:69:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 5554,
                  "id": 5560,
                  "nodeType": "Return",
                  "src": "12649:76:36"
                }
              ]
            },
            "documentation": {
              "id": 5547,
              "nodeType": "StructuredDocumentation",
              "src": "12324:163:36",
              "text": "@notice Retrieves the CBOR-encoded buffer containing the Witnet-provided result to the given query.\n @param _witnetQueryId The unique query identifier."
            },
            "functionSelector": "8d3d8b38",
            "id": 5562,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResultCborBytes",
            "nameLocation": "12502:23:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5551,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12592:8:36"
            },
            "parameters": {
              "id": 5550,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5549,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "12534:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "12526:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5548,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12526:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12525:24:36"
            },
            "returnParameters": {
              "id": 5554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5553,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "12619:12:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5552,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "12619:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12618:14:36"
            },
            "scope": 6817,
            "src": "12493:240:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13195
            ],
            "body": {
              "id": 5633,
              "nodeType": "Block",
              "src": "13057:823:36",
              "statements": [
                {
                  "assignments": [
                    5576
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5576,
                      "mutability": "mutable",
                      "name": "_status",
                      "nameLocation": "13092:7:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 5633,
                      "src": "13068:31:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                        "typeString": "enum WitnetV2.ResponseStatus"
                      },
                      "typeName": {
                        "id": 5575,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5574,
                          "name": "WitnetV2.ResponseStatus",
                          "nameLocations": [
                            "13068:8:36",
                            "13077:14:36"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 23496,
                          "src": "13068:23:36"
                        },
                        "referencedDeclaration": 23496,
                        "src": "13068:23:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5581,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5579,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5565,
                        "src": "13146:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5577,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "13102:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 5578,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13122:23:36",
                      "memberName": "seekQueryResponseStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12262,
                      "src": "13102:43:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ResponseStatus_$23496_$",
                        "typeString": "function (uint256) view returns (enum WitnetV2.ResponseStatus)"
                      }
                    },
                    "id": 5580,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13102:59:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                      "typeString": "enum WitnetV2.ResponseStatus"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13068:93:36"
                },
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 5597,
                        "nodeType": "Block",
                        "src": "13357:46:36",
                        "statements": [
                          {
                            "expression": {
                              "id": 5595,
                              "name": "_resultError",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5593,
                              "src": "13379:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ResultError_$16055_memory_ptr",
                                "typeString": "struct Witnet.ResultError memory"
                              }
                            },
                            "functionReturnParameters": 5571,
                            "id": 5596,
                            "nodeType": "Return",
                            "src": "13372:19:36"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5598,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5594,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5593,
                            "mutability": "mutable",
                            "name": "_resultError",
                            "nameLocation": "13334:12:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 5598,
                            "src": "13308:38:36",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ResultError_$16055_memory_ptr",
                              "typeString": "struct Witnet.ResultError"
                            },
                            "typeName": {
                              "id": 5592,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 5591,
                                "name": "Witnet.ResultError",
                                "nameLocations": [
                                  "13308:6:36",
                                  "13315:11:36"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 16055,
                                "src": "13308:18:36"
                              },
                              "referencedDeclaration": 16055,
                              "src": "13308:18:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ResultError_$16055_storage_ptr",
                                "typeString": "struct Witnet.ResultError"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13307:40:36"
                      },
                      "src": "13299:104:36"
                    },
                    {
                      "block": {
                        "id": 5617,
                        "nodeType": "Block",
                        "src": "13449:206:36",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "expression": {
                                    "expression": {
                                      "id": 5604,
                                      "name": "Witnet",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 17557,
                                      "src": "13515:6:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                        "typeString": "type(library Witnet)"
                                      }
                                    },
                                    "id": 5605,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "13522:16:36",
                                    "memberName": "ResultErrorCodes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 16311,
                                    "src": "13515:23:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                      "typeString": "type(enum Witnet.ResultErrorCodes)"
                                    }
                                  },
                                  "id": 5606,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "13539:7:36",
                                  "memberName": "Unknown",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16056,
                                  "src": "13515:31:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                    "typeString": "enum Witnet.ResultErrorCodes"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "hexValue": "5769746e65744572726f72734c69623a20",
                                          "id": 5611,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "13597:19:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_adde32c7bb9bc1be59487f778ed1835d1b81ca43cc9a0e45fb54328008aec129",
                                            "typeString": "literal_string \"WitnetErrorsLib: \""
                                          },
                                          "value": "WitnetErrorsLib: "
                                        },
                                        {
                                          "id": 5612,
                                          "name": "_reason",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5600,
                                          "src": "13618:7:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_stringliteral_adde32c7bb9bc1be59487f778ed1835d1b81ca43cc9a0e45fb54328008aec129",
                                            "typeString": "literal_string \"WitnetErrorsLib: \""
                                          },
                                          {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "expression": {
                                          "id": 5609,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967295,
                                          "src": "13580:3:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 5610,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberLocation": "13584:12:36",
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "src": "13580:16:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 5613,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13580:46:36",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 5608,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "13573:6:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                      "typeString": "type(string storage pointer)"
                                    },
                                    "typeName": {
                                      "id": 5607,
                                      "name": "string",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "13573:6:36",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 5614,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13573:54:36",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                    "typeString": "enum Witnet.ResultErrorCodes"
                                  },
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "expression": {
                                  "id": 5602,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17557,
                                  "src": "13471:6:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 5603,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "13478:11:36",
                                "memberName": "ResultError",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16055,
                                "src": "13471:18:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_struct$_ResultError_$16055_storage_ptr_$",
                                  "typeString": "type(struct Witnet.ResultError storage pointer)"
                                }
                              },
                              "id": 5615,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "structConstructorCall",
                              "lValueRequested": false,
                              "nameLocations": [
                                "13509:4:36",
                                "13565:6:36"
                              ],
                              "names": [
                                "code",
                                "reason"
                              ],
                              "nodeType": "FunctionCall",
                              "src": "13471:172:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ResultError_$16055_memory_ptr",
                                "typeString": "struct Witnet.ResultError memory"
                              }
                            },
                            "functionReturnParameters": 5571,
                            "id": 5616,
                            "nodeType": "Return",
                            "src": "13464:179:36"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 5618,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5601,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5600,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "13440:7:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 5618,
                            "src": "13426:21:36",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 5599,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "13426:6:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13425:23:36"
                      },
                      "src": "13414:241:36"
                    },
                    {
                      "block": {
                        "id": 5630,
                        "nodeType": "Block",
                        "src": "13686:187:36",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "expression": {
                                    "expression": {
                                      "id": 5624,
                                      "name": "Witnet",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 17557,
                                      "src": "13752:6:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                        "typeString": "type(library Witnet)"
                                      }
                                    },
                                    "id": 5625,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "13759:16:36",
                                    "memberName": "ResultErrorCodes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 16311,
                                    "src": "13752:23:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                      "typeString": "type(enum Witnet.ResultErrorCodes)"
                                    }
                                  },
                                  "id": 5626,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "13776:7:36",
                                  "memberName": "Unknown",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16056,
                                  "src": "13752:31:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                    "typeString": "enum Witnet.ResultErrorCodes"
                                  }
                                },
                                {
                                  "hexValue": "5769746e65744572726f72734c69623a20617373657274696f6e206661696c6564",
                                  "id": 5627,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13810:35:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_33bcb27a0813fef3188717f8f71945a6480ac16d941cd5d0365561fd9adfc4cf",
                                    "typeString": "literal_string \"WitnetErrorsLib: assertion failed\""
                                  },
                                  "value": "WitnetErrorsLib: assertion failed"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                    "typeString": "enum Witnet.ResultErrorCodes"
                                  },
                                  {
                                    "typeIdentifier": "t_stringliteral_33bcb27a0813fef3188717f8f71945a6480ac16d941cd5d0365561fd9adfc4cf",
                                    "typeString": "literal_string \"WitnetErrorsLib: assertion failed\""
                                  }
                                ],
                                "expression": {
                                  "id": 5622,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17557,
                                  "src": "13708:6:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 5623,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "13715:11:36",
                                "memberName": "ResultError",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16055,
                                "src": "13708:18:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_struct$_ResultError_$16055_storage_ptr_$",
                                  "typeString": "type(struct Witnet.ResultError storage pointer)"
                                }
                              },
                              "id": 5628,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "structConstructorCall",
                              "lValueRequested": false,
                              "nameLocations": [
                                "13746:4:36",
                                "13802:6:36"
                              ],
                              "names": [
                                "code",
                                "reason"
                              ],
                              "nodeType": "FunctionCall",
                              "src": "13708:153:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ResultError_$16055_memory_ptr",
                                "typeString": "struct Witnet.ResultError memory"
                              }
                            },
                            "functionReturnParameters": 5571,
                            "id": 5629,
                            "nodeType": "Return",
                            "src": "13701:160:36"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5631,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5621,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5620,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 5631,
                            "src": "13672:12:36",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 5619,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "13672:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13671:14:36"
                      },
                      "src": "13665:208:36"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 5584,
                        "name": "_status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5576,
                        "src": "13206:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 5587,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5565,
                              "src": "13253:14:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 5585,
                              "name": "WitnetOracleDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12396,
                              "src": "13215:19:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                "typeString": "type(library WitnetOracleDataLib)"
                              }
                            },
                            "id": 5586,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13235:17:36",
                            "memberName": "seekQueryResponse",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 12109,
                            "src": "13215:37:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Response_$23488_storage_ptr_$",
                              "typeString": "function (uint256) view returns (struct WitnetV2.Response storage pointer)"
                            }
                          },
                          "id": 5588,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13215:53:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Response_$23488_storage_ptr",
                            "typeString": "struct WitnetV2.Response storage pointer"
                          }
                        },
                        "id": 5589,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "13269:15:36",
                        "memberName": "resultCborBytes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23487,
                        "src": "13215:69:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ResponseStatus_$23496",
                          "typeString": "enum WitnetV2.ResponseStatus"
                        },
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "id": 5582,
                        "name": "WitnetErrorsLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23206,
                        "src": "13176:15:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetErrorsLib_$23206_$",
                          "typeString": "type(library WitnetErrorsLib)"
                        }
                      },
                      "id": 5583,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13192:13:36",
                      "memberName": "asResultError",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22557,
                      "src": "13176:29:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_pure$_t_enum$_ResponseStatus_$23496_$_t_bytes_memory_ptr_$returns$_t_struct$_ResultError_$16055_memory_ptr_$",
                        "typeString": "function (enum WitnetV2.ResponseStatus,bytes memory) pure returns (struct Witnet.ResultError memory)"
                      }
                    },
                    "id": 5590,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13176:109:36",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ResultError_$16055_memory_ptr",
                      "typeString": "struct Witnet.ResultError memory"
                    }
                  },
                  "id": 5632,
                  "nodeType": "TryStatement",
                  "src": "13172:701:36"
                }
              ]
            },
            "documentation": {
              "id": 5563,
              "nodeType": "StructuredDocumentation",
              "src": "12741:159:36",
              "text": "@notice Gets error code identifying some possible failure on the resolution of the given query.\n @param _witnetQueryId The unique query identifier."
            },
            "functionSelector": "a77fc1a4",
            "id": 5634,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryResultError",
            "nameLocation": "12915:19:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5567,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12976:8:36"
            },
            "parameters": {
              "id": 5566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5565,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "12943:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5634,
                  "src": "12935:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5564,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12935:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12934:24:36"
            },
            "returnParameters": {
              "id": 5571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5570,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5634,
                  "src": "13025:25:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ResultError_$16055_memory_ptr",
                    "typeString": "struct Witnet.ResultError"
                  },
                  "typeName": {
                    "id": 5569,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5568,
                      "name": "Witnet.ResultError",
                      "nameLocations": [
                        "13025:6:36",
                        "13032:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16055,
                      "src": "13025:18:36"
                    },
                    "referencedDeclaration": 16055,
                    "src": "13025:18:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ResultError_$16055_storage_ptr",
                      "typeString": "struct Witnet.ResultError"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13024:27:36"
            },
            "scope": 6817,
            "src": "12906:974:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13204
            ],
            "body": {
              "id": 5649,
              "nodeType": "Block",
              "src": "14067:77:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5646,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5637,
                        "src": "14121:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5644,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "14085:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 5645,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14105:15:36",
                      "memberName": "seekQueryStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12172,
                      "src": "14085:35:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$23461_$",
                        "typeString": "function (uint256) view returns (enum WitnetV2.QueryStatus)"
                      }
                    },
                    "id": 5647,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14085:51:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  },
                  "functionReturnParameters": 5643,
                  "id": 5648,
                  "nodeType": "Return",
                  "src": "14078:58:36"
                }
              ]
            },
            "documentation": {
              "id": 5635,
              "nodeType": "StructuredDocumentation",
              "src": "13888:39:36",
              "text": "Gets current status of given query."
            },
            "functionSelector": "6f07abcc",
            "id": 5650,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryStatus",
            "nameLocation": "13942:14:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5639,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14013:8:36"
            },
            "parameters": {
              "id": 5638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5637,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "13965:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5650,
                  "src": "13957:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5636,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13957:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13956:24:36"
            },
            "returnParameters": {
              "id": 5643,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5642,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5650,
                  "src": "14040:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_QueryStatus_$23461",
                    "typeString": "enum WitnetV2.QueryStatus"
                  },
                  "typeName": {
                    "id": 5641,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5640,
                      "name": "WitnetV2.QueryStatus",
                      "nameLocations": [
                        "14040:8:36",
                        "14049:11:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23461,
                      "src": "14040:20:36"
                    },
                    "referencedDeclaration": 23461,
                    "src": "14040:20:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14039:22:36"
            },
            "scope": 6817,
            "src": "13933:211:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13215
            ],
            "body": {
              "id": 5695,
              "nodeType": "Block",
              "src": "14320:245:36",
              "statements": [
                {
                  "expression": {
                    "id": 5669,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5661,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5659,
                      "src": "14331:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_memory_ptr",
                        "typeString": "enum WitnetV2.QueryStatus[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 5666,
                            "name": "_witnetQueryIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5653,
                            "src": "14368:15:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 5667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14384:6:36",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "14368:22:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 5665,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "14341:26:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_QueryStatus_$23461_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (enum WitnetV2.QueryStatus[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 5663,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 5662,
                              "name": "WitnetV2.QueryStatus",
                              "nameLocations": [
                                "14345:8:36",
                                "14354:11:36"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 23461,
                              "src": "14345:20:36"
                            },
                            "referencedDeclaration": 23461,
                            "src": "14345:20:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "id": 5664,
                          "nodeType": "ArrayTypeName",
                          "src": "14345:22:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_storage_ptr",
                            "typeString": "enum WitnetV2.QueryStatus[]"
                          }
                        }
                      },
                      "id": 5668,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14341:50:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_memory_ptr",
                        "typeString": "enum WitnetV2.QueryStatus[] memory"
                      }
                    },
                    "src": "14331:60:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_memory_ptr",
                      "typeString": "enum WitnetV2.QueryStatus[] memory"
                    }
                  },
                  "id": 5670,
                  "nodeType": "ExpressionStatement",
                  "src": "14331:60:36"
                },
                {
                  "body": {
                    "id": 5693,
                    "nodeType": "Block",
                    "src": "14459:99:36",
                    "statements": [
                      {
                        "expression": {
                          "id": 5691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 5682,
                              "name": "_status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5659,
                              "src": "14474:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_memory_ptr",
                                "typeString": "enum WitnetV2.QueryStatus[] memory"
                              }
                            },
                            "id": 5684,
                            "indexExpression": {
                              "id": 5683,
                              "name": "_ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5672,
                              "src": "14482:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14474:12:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 5687,
                                  "name": "_witnetQueryIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5653,
                                  "src": "14525:15:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 5689,
                                "indexExpression": {
                                  "id": 5688,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5672,
                                  "src": "14541:3:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "14525:20:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 5685,
                                "name": "WitnetOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12396,
                                "src": "14489:19:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                  "typeString": "type(library WitnetOracleDataLib)"
                                }
                              },
                              "id": 5686,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14509:15:36",
                              "memberName": "seekQueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12172,
                              "src": "14489:35:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "function (uint256) view returns (enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 5690,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14489:57:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "src": "14474:72:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_QueryStatus_$23461",
                            "typeString": "enum WitnetV2.QueryStatus"
                          }
                        },
                        "id": 5692,
                        "nodeType": "ExpressionStatement",
                        "src": "14474:72:36"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5675,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5672,
                      "src": "14421:3:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5676,
                        "name": "_witnetQueryIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5653,
                        "src": "14427:15:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 5677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14443:6:36",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14427:22:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14421:28:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5694,
                  "initializationExpression": {
                    "assignments": [
                      5672
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5672,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "14412:3:36",
                        "nodeType": "VariableDeclaration",
                        "scope": 5694,
                        "src": "14407:8:36",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5671,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14407:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5674,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 5673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14418:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14407:12:36"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 5680,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "14451:6:36",
                      "subExpression": {
                        "id": 5679,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5672,
                        "src": "14451:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5681,
                    "nodeType": "ExpressionStatement",
                    "src": "14451:6:36"
                  },
                  "nodeType": "ForStatement",
                  "src": "14402:156:36"
                }
              ]
            },
            "functionSelector": "581f5094",
            "id": 5696,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryStatusBatch",
            "nameLocation": "14161:19:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5655,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14249:8:36"
            },
            "parameters": {
              "id": 5654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5653,
                  "mutability": "mutable",
                  "name": "_witnetQueryIds",
                  "nameLocation": "14200:15:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5696,
                  "src": "14181:34:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5651,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14181:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5652,
                    "nodeType": "ArrayTypeName",
                    "src": "14181:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14180:36:36"
            },
            "returnParameters": {
              "id": 5660,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5659,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "14306:7:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5696,
                  "src": "14276:37:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_memory_ptr",
                    "typeString": "enum WitnetV2.QueryStatus[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5657,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 5656,
                        "name": "WitnetV2.QueryStatus",
                        "nameLocations": [
                          "14276:8:36",
                          "14285:11:36"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 23461,
                        "src": "14276:20:36"
                      },
                      "referencedDeclaration": 23461,
                      "src": "14276:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_QueryStatus_$23461",
                        "typeString": "enum WitnetV2.QueryStatus"
                      }
                    },
                    "id": 5658,
                    "nodeType": "ArrayTypeName",
                    "src": "14276:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_enum$_QueryStatus_$23461_$dyn_storage_ptr",
                      "typeString": "enum WitnetV2.QueryStatus[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14275:39:36"
            },
            "scope": 6817,
            "src": "14152:413:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13221
            ],
            "body": {
              "id": 5709,
              "nodeType": "Block",
              "src": "14756:47:36",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5703,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6783,
                          "src": "14774:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 5704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14774:11:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                          "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                        }
                      },
                      "id": 5705,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14786:5:36",
                      "memberName": "nonce",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12026,
                      "src": "14774:17:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 5706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14794:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "14774:21:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5702,
                  "id": 5708,
                  "nodeType": "Return",
                  "src": "14767:28:36"
                }
              ]
            },
            "documentation": {
              "id": 5697,
              "nodeType": "StructuredDocumentation",
              "src": "14573:78:36",
              "text": "@notice Returns next query id to be generated by the Witnet Request Board."
            },
            "functionSelector": "c805dd0f",
            "id": 5710,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getNextQueryId",
            "nameLocation": "14666:14:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5699,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14715:8:36"
            },
            "parameters": {
              "id": 5698,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14680:2:36"
            },
            "returnParameters": {
              "id": 5702,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5701,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5710,
                  "src": "14742:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5700,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14742:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14741:9:36"
            },
            "scope": 6817,
            "src": "14657:146:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13232
            ],
            "body": {
              "id": 5747,
              "nodeType": "Block",
              "src": "15926:266:36",
              "statements": [
                {
                  "expression": {
                    "id": 5738,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5732,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5730,
                      "src": "15937:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 5734,
                          "name": "_queryRAD",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5713,
                          "src": "15968:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 5735,
                          "name": "_querySLA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5716,
                          "src": "15979:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          }
                        },
                        {
                          "hexValue": "30",
                          "id": 5736,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15990:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 5733,
                        "name": "__postRequest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6410,
                        "src": "15954:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_RadonSLA_$23503_calldata_ptr_$_t_uint24_$returns$_t_uint256_$",
                          "typeString": "function (bytes32,struct WitnetV2.RadonSLA calldata,uint24) returns (uint256)"
                        }
                      },
                      "id": 5737,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15954:38:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15937:55:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5739,
                  "nodeType": "ExpressionStatement",
                  "src": "15937:55:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 5741,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5730,
                        "src": "16105:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5742,
                          "name": "_getMsgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24136,
                          "src": "16135:12:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 5743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16135:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5744,
                        "name": "_querySLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5716,
                        "src": "16164:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                          "typeString": "struct WitnetV2.RadonSLA calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                          "typeString": "struct WitnetV2.RadonSLA calldata"
                        }
                      ],
                      "id": 5740,
                      "name": "WitnetQuery",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13278,
                      "src": "16079:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,struct WitnetV2.RadonSLA memory)"
                      }
                    },
                    "id": 5745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16079:105:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5746,
                  "nodeType": "EmitStatement",
                  "src": "16074:110:36"
                }
              ]
            },
            "documentation": {
              "id": 5711,
              "nodeType": "StructuredDocumentation",
              "src": "14811:800:36",
              "text": "@notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and \n @notice solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be \n @notice transferred to the reporter who relays back the Witnet-provable result to this request.\n @dev Reasons to fail:\n @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\n @dev - invalid SLA parameters were provided;\n @dev - insufficient value is paid as reward.\n @param _queryRAD The RAD hash of the data request to be solved by Witnet.\n @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n @return _witnetQueryId Unique query identifier."
            },
            "functionSelector": "3dc2b7a2",
            "id": 5748,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5721,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24130,
                          "src": "15822:12:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 5722,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15822:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5723,
                        "name": "_queryRAD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5713,
                        "src": "15838:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5720,
                      "name": "estimateBaseFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5196,
                        5428
                      ],
                      "referencedDeclaration": 5428,
                      "src": "15806:15:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (uint256,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 5724,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15806:42:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5725,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5719,
                  "name": "checkReward",
                  "nameLocations": [
                    "15794:11:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4952,
                  "src": "15794:11:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "15794:55:36"
              },
              {
                "arguments": [
                  {
                    "id": 5727,
                    "name": "_querySLA",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5716,
                    "src": "15868:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                      "typeString": "struct WitnetV2.RadonSLA calldata"
                    }
                  }
                ],
                "id": 5728,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5726,
                  "name": "checkSLA",
                  "nameLocations": [
                    "15859:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4967,
                  "src": "15859:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "15859:19:36"
              }
            ],
            "name": "postRequest",
            "nameLocation": "15626:11:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5718,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15750:8:36"
            },
            "parameters": {
              "id": 5717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5713,
                  "mutability": "mutable",
                  "name": "_queryRAD",
                  "nameLocation": "15660:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5748,
                  "src": "15652:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5712,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15652:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5716,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "15712:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5748,
                  "src": "15685:36:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 5715,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5714,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "15685:8:36",
                        "15694:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "15685:17:36"
                    },
                    "referencedDeclaration": 23503,
                    "src": "15685:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15637:95:36"
            },
            "returnParameters": {
              "id": 5731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5730,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "15905:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5748,
                  "src": "15897:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15897:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15896:24:36"
            },
            "scope": 6817,
            "src": "15617:575:36",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13245
            ],
            "body": {
              "id": 5792,
              "nodeType": "Block",
              "src": "18028:266:36",
              "statements": [
                {
                  "expression": {
                    "id": 5783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5777,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5775,
                      "src": "18039:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 5779,
                          "name": "_queryRAD",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5751,
                          "src": "18084:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 5780,
                          "name": "_querySLA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5754,
                          "src": "18108:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          }
                        },
                        {
                          "id": 5781,
                          "name": "_queryCallbackGasLimit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5756,
                          "src": "18132:22:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          },
                          {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        ],
                        "id": 5778,
                        "name": "__postRequest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6410,
                        "src": "18056:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_RadonSLA_$23503_calldata_ptr_$_t_uint24_$returns$_t_uint256_$",
                          "typeString": "function (bytes32,struct WitnetV2.RadonSLA calldata,uint24) returns (uint256)"
                        }
                      },
                      "id": 5782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18056:109:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18039:126:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5784,
                  "nodeType": "ExpressionStatement",
                  "src": "18039:126:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 5786,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5775,
                        "src": "18207:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5787,
                          "name": "_getMsgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24136,
                          "src": "18237:12:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 5788,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18237:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5789,
                        "name": "_querySLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5754,
                        "src": "18266:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                          "typeString": "struct WitnetV2.RadonSLA calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                          "typeString": "struct WitnetV2.RadonSLA calldata"
                        }
                      ],
                      "id": 5785,
                      "name": "WitnetQuery",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13278,
                      "src": "18181:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,struct WitnetV2.RadonSLA memory)"
                      }
                    },
                    "id": 5790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18181:105:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5791,
                  "nodeType": "EmitStatement",
                  "src": "18176:110:36"
                }
              ]
            },
            "documentation": {
              "id": 5749,
              "nodeType": "StructuredDocumentation",
              "src": "16203:1359:36",
              "text": "@notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \n @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \n @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\n @notice directly to the requesting contract. If the report callback fails for any reason, an `WitnetQueryResponseDeliveryFailed`\n @notice will be triggered, and the Witnet audit trail will be saved in storage, but not so the actual CBOR-encoded result.\n @dev Reasons to fail:\n @dev - the caller is not a contract implementing the IWitnetConsumer interface;\n @dev - the RAD hash was not previously verified by the WitnetRequestBytecodes registry;\n @dev - invalid SLA parameters were provided;\n @dev - zero callback gas limit is provided;\n @dev - insufficient value is paid as reward.\n @param _queryRAD The RAD hash of the data request to be solved by Witnet.\n @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n @param _queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\n @return _witnetQueryId Unique query identifier."
            },
            "functionSelector": "e900aa33",
            "id": 5793,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "expression": {
                      "id": 5760,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967281,
                      "src": "17825:3:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 5761,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "17829:6:36",
                    "memberName": "sender",
                    "nodeType": "MemberAccess",
                    "src": "17825:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 5762,
                    "name": "_queryCallbackGasLimit",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5756,
                    "src": "17837:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  }
                ],
                "id": 5763,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5759,
                  "name": "checkCallbackRecipient",
                  "nameLocations": [
                    "17802:22:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4928,
                  "src": "17802:22:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "17802:58:36"
              },
              {
                "arguments": [
                  {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5766,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24130,
                          "src": "17910:12:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 5767,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17910:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5768,
                        "name": "_queryCallbackGasLimit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5756,
                        "src": "17927:22:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "id": 5765,
                      "name": "estimateBaseFeeWithCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5206,
                      "src": "17882:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint24) view returns (uint256)"
                      }
                    },
                    "id": 5769,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17882:68:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5770,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5764,
                  "name": "checkReward",
                  "nameLocations": [
                    "17870:11:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4952,
                  "src": "17870:11:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "17870:81:36"
              },
              {
                "arguments": [
                  {
                    "id": 5772,
                    "name": "_querySLA",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5754,
                    "src": "17970:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                      "typeString": "struct WitnetV2.RadonSLA calldata"
                    }
                  }
                ],
                "id": 5773,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5771,
                  "name": "checkSLA",
                  "nameLocations": [
                    "17961:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4967,
                  "src": "17961:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "17961:19:36"
              }
            ],
            "name": "postRequestWithCallback",
            "nameLocation": "17577:23:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5758,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "17757:8:36"
            },
            "parameters": {
              "id": 5757,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5751,
                  "mutability": "mutable",
                  "name": "_queryRAD",
                  "nameLocation": "17623:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5793,
                  "src": "17615:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5750,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17615:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5754,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "17675:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5793,
                  "src": "17648:36:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 5753,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5752,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "17648:8:36",
                        "17657:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "17648:17:36"
                    },
                    "referencedDeclaration": 23503,
                    "src": "17648:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5756,
                  "mutability": "mutable",
                  "name": "_queryCallbackGasLimit",
                  "nameLocation": "17706:22:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5793,
                  "src": "17699:29:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 5755,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "17699:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17600:139:36"
            },
            "returnParameters": {
              "id": 5776,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5775,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "18007:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5793,
                  "src": "17999:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5774,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17999:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17998:24:36"
            },
            "scope": 6817,
            "src": "17568:726:36",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13258
            ],
            "body": {
              "id": 5849,
              "nodeType": "Block",
              "src": "20156:371:36",
              "statements": [
                {
                  "expression": {
                    "id": 5831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5822,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5820,
                      "src": "20167:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 5826,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "20220:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5825,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "20212:7:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 5824,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "20212:7:36",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 5827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20212:10:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 5828,
                          "name": "_querySLA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5799,
                          "src": "20237:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          }
                        },
                        {
                          "id": 5829,
                          "name": "_queryCallbackGasLimit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5801,
                          "src": "20261:22:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          },
                          {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        ],
                        "id": 5823,
                        "name": "__postRequest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6410,
                        "src": "20184:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_RadonSLA_$23503_calldata_ptr_$_t_uint24_$returns$_t_uint256_$",
                          "typeString": "function (bytes32,struct WitnetV2.RadonSLA calldata,uint24) returns (uint256)"
                        }
                      },
                      "id": 5830,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20184:110:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20167:127:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5832,
                  "nodeType": "ExpressionStatement",
                  "src": "20167:127:36"
                },
                {
                  "expression": {
                    "id": 5840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 5836,
                            "name": "_witnetQueryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5820,
                            "src": "20342:14:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 5833,
                            "name": "WitnetOracleDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12396,
                            "src": "20305:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                              "typeString": "type(library WitnetOracleDataLib)"
                            }
                          },
                          "id": 5835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "20325:16:36",
                          "memberName": "seekQueryRequest",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12092,
                          "src": "20305:36:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                            "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                          }
                        },
                        "id": 5837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20305:52:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request storage pointer"
                        }
                      },
                      "id": 5838,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "20358:14:36",
                      "memberName": "witnetBytecode",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23470,
                      "src": "20305:67:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5839,
                      "name": "_queryUnverifiedBytecode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5796,
                      "src": "20375:24:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "20305:94:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 5841,
                  "nodeType": "ExpressionStatement",
                  "src": "20305:94:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 5843,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5820,
                        "src": "20441:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5844,
                          "name": "_getMsgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24136,
                          "src": "20470:12:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 5845,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20470:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5846,
                        "name": "_querySLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5799,
                        "src": "20499:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                          "typeString": "struct WitnetV2.RadonSLA calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                          "typeString": "struct WitnetV2.RadonSLA calldata"
                        }
                      ],
                      "id": 5842,
                      "name": "WitnetQuery",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13278,
                      "src": "20415:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,struct WitnetV2.RadonSLA memory)"
                      }
                    },
                    "id": 5847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20415:104:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5848,
                  "nodeType": "EmitStatement",
                  "src": "20410:109:36"
                }
              ]
            },
            "documentation": {
              "id": 5794,
              "nodeType": "StructuredDocumentation",
              "src": "18302:1366:36",
              "text": "@notice Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by \n @notice the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the \n @notice reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reported\n @notice directly to the requesting contract. If the report callback fails for any reason, a `WitnetQueryResponseDeliveryFailed`\n @notice event will be triggered, and the Witnet audit trail will be saved in storage, but not so the CBOR-encoded result.\n @dev Reasons to fail:\n @dev - the caller is not a contract implementing the IWitnetConsumer interface;\n @dev - the provided bytecode is empty;\n @dev - invalid SLA parameters were provided;\n @dev - zero callback gas limit is provided;\n @dev - insufficient value is paid as reward.\n @param _queryUnverifiedBytecode The (unverified) bytecode containing the actual data request to be solved by the Witnet blockchain.\n @param _querySLA The data query SLA to be fulfilled on the Witnet blockchain.\n @param _queryCallbackGasLimit Maximum gas to be spent when reporting the data request result.\n @return _witnetQueryId Unique query identifier."
            },
            "functionSelector": "a3ff5b00",
            "id": 5850,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "expression": {
                      "id": 5805,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967281,
                      "src": "19953:3:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 5806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "19957:6:36",
                    "memberName": "sender",
                    "nodeType": "MemberAccess",
                    "src": "19953:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 5807,
                    "name": "_queryCallbackGasLimit",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5801,
                    "src": "19965:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  }
                ],
                "id": 5808,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5804,
                  "name": "checkCallbackRecipient",
                  "nameLocations": [
                    "19930:22:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4928,
                  "src": "19930:22:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "19930:58:36"
              },
              {
                "arguments": [
                  {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5811,
                          "name": "_getGasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24130,
                          "src": "20038:12:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 5812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20038:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5813,
                        "name": "_queryCallbackGasLimit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5801,
                        "src": "20055:22:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "id": 5810,
                      "name": "estimateBaseFeeWithCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5206,
                      "src": "20010:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint24) view returns (uint256)"
                      }
                    },
                    "id": 5814,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20010:68:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5815,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5809,
                  "name": "checkReward",
                  "nameLocations": [
                    "19998:11:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4952,
                  "src": "19998:11:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "19998:81:36"
              },
              {
                "arguments": [
                  {
                    "id": 5817,
                    "name": "_querySLA",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5799,
                    "src": "20098:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                      "typeString": "struct WitnetV2.RadonSLA calldata"
                    }
                  }
                ],
                "id": 5818,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5816,
                  "name": "checkSLA",
                  "nameLocations": [
                    "20089:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4967,
                  "src": "20089:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "20089:19:36"
              }
            ],
            "name": "postRequestWithCallback",
            "nameLocation": "19683:23:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5803,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "19885:8:36"
            },
            "parameters": {
              "id": 5802,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5796,
                  "mutability": "mutable",
                  "name": "_queryUnverifiedBytecode",
                  "nameLocation": "19736:24:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5850,
                  "src": "19721:39:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5795,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "19721:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5799,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "19802:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5850,
                  "src": "19775:36:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 5798,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5797,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "19775:8:36",
                        "19784:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "19775:17:36"
                    },
                    "referencedDeclaration": 23503,
                    "src": "19775:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5801,
                  "mutability": "mutable",
                  "name": "_queryCallbackGasLimit",
                  "nameLocation": "19834:22:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5850,
                  "src": "19827:29:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 5800,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "19827:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19706:161:36"
            },
            "returnParameters": {
              "id": 5821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5820,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "20135:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5850,
                  "src": "20127:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5819,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20127:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20126:24:36"
            },
            "scope": 6817,
            "src": "19674:853:36",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13264
            ],
            "body": {
              "id": 5889,
              "nodeType": "Block",
              "src": "20950:242:36",
              "statements": [
                {
                  "assignments": [
                    5867
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5867,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "20986:9:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 5889,
                      "src": "20961:34:36",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                        "typeString": "struct WitnetV2.Request"
                      },
                      "typeName": {
                        "id": 5866,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5865,
                          "name": "WitnetV2.Request",
                          "nameLocations": [
                            "20961:8:36",
                            "20970:7:36"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 23476,
                          "src": "20961:16:36"
                        },
                        "referencedDeclaration": 23476,
                        "src": "20961:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5872,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5870,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5853,
                        "src": "21035:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5868,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "20998:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 5869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "21018:16:36",
                      "memberName": "seekQueryRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12092,
                      "src": "20998:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                      }
                    },
                    "id": 5871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20998:52:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                      "typeString": "struct WitnetV2.Request storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20961:89:36"
                },
                {
                  "expression": {
                    "id": 5881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 5873,
                        "name": "__request",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5867,
                        "src": "21061:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request storage pointer"
                        }
                      },
                      "id": 5875,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "21071:9:36",
                      "memberName": "evmReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23468,
                      "src": "21061:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint72",
                        "typeString": "uint72"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5878,
                            "name": "_getMsgValue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24136,
                            "src": "21091:12:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 5879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21091:14:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 5877,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "21084:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint72_$",
                          "typeString": "type(uint72)"
                        },
                        "typeName": {
                          "id": 5876,
                          "name": "uint72",
                          "nodeType": "ElementaryTypeName",
                          "src": "21084:6:36",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 5880,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21084:22:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint72",
                        "typeString": "uint72"
                      }
                    },
                    "src": "21061:45:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint72",
                      "typeString": "uint72"
                    }
                  },
                  "id": 5882,
                  "nodeType": "ExpressionStatement",
                  "src": "21061:45:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 5884,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5853,
                        "src": "21148:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "id": 5885,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5867,
                          "src": "21164:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                            "typeString": "struct WitnetV2.Request storage pointer"
                          }
                        },
                        "id": 5886,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "21174:9:36",
                        "memberName": "evmReward",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23468,
                        "src": "21164:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint72",
                          "typeString": "uint72"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint72",
                          "typeString": "uint72"
                        }
                      ],
                      "id": 5883,
                      "name": "WitnetQueryRewardUpgraded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13314,
                      "src": "21122:25:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 5887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21122:62:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5888,
                  "nodeType": "EmitStatement",
                  "src": "21117:67:36"
                }
              ]
            },
            "documentation": {
              "id": 5851,
              "nodeType": "StructuredDocumentation",
              "src": "20537:226:36",
              "text": "Increments the reward of a previously posted request by adding the transaction value to it.\n @dev Fails if the `_witnetQueryId` is not in 'Posted' status.\n @param _witnetQueryId The unique query identifier."
            },
            "functionSelector": "ec5946db",
            "id": 5890,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 5857,
                    "name": "_witnetQueryId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5853,
                    "src": "20900:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "expression": {
                      "expression": {
                        "id": 5858,
                        "name": "WitnetV2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23640,
                        "src": "20916:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                          "typeString": "type(library WitnetV2)"
                        }
                      },
                      "id": 5859,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "20925:11:36",
                      "memberName": "QueryStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23461,
                      "src": "20916:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                        "typeString": "type(enum WitnetV2.QueryStatus)"
                      }
                    },
                    "id": 5860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "20937:6:36",
                    "memberName": "Posted",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 23458,
                    "src": "20916:27:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  }
                ],
                "id": 5861,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5856,
                  "name": "inStatus",
                  "nameLocations": [
                    "20891:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4993,
                  "src": "20891:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "20891:53:36"
              }
            ],
            "name": "upgradeQueryEvmReward",
            "nameLocation": "20778:21:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5855,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20867:8:36"
            },
            "parameters": {
              "id": 5854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5853,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "20808:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 5890,
                  "src": "20800:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5852,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20800:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20799:24:36"
            },
            "returnParameters": {
              "id": 5862,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20950:0:36"
            },
            "scope": 6817,
            "src": "20769:423:36",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13336
            ],
            "body": {
              "id": 6002,
              "nodeType": "Block",
              "src": "22054:1039:36",
              "statements": [
                {
                  "body": {
                    "id": 6000,
                    "nodeType": "Block",
                    "src": "22122:964:36",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_QueryStatus_$23461",
                            "typeString": "enum WitnetV2.QueryStatus"
                          },
                          "id": 5928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 5921,
                                  "name": "_witnetQueryIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5894,
                                  "src": "22177:15:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 5923,
                                "indexExpression": {
                                  "id": 5922,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5909,
                                  "src": "22193:3:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "22177:20:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 5919,
                                "name": "WitnetOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12396,
                                "src": "22141:19:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                  "typeString": "type(library WitnetOracleDataLib)"
                                }
                              },
                              "id": 5920,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "22161:15:36",
                              "memberName": "seekQueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12172,
                              "src": "22141:35:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "function (uint256) view returns (enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 5924,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "22141:57:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 5925,
                                "name": "WitnetV2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23640,
                                "src": "22202:8:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                  "typeString": "type(library WitnetV2)"
                                }
                              },
                              "id": 5926,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "22211:11:36",
                              "memberName": "QueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 23461,
                              "src": "22202:20:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "type(enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 5927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "22223:6:36",
                            "memberName": "Posted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23458,
                            "src": "22202:27:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "src": "22141:88:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 5999,
                        "nodeType": "IfStatement",
                        "src": "22137:938:36",
                        "trueBody": {
                          "id": 5998,
                          "nodeType": "Block",
                          "src": "22231:844:36",
                          "statements": [
                            {
                              "assignments": [
                                5933
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 5933,
                                  "mutability": "mutable",
                                  "name": "__request",
                                  "nameLocation": "22275:9:36",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 5998,
                                  "src": "22250:34:36",
                                  "stateVariable": false,
                                  "storageLocation": "storage",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                    "typeString": "struct WitnetV2.Request"
                                  },
                                  "typeName": {
                                    "id": 5932,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 5931,
                                      "name": "WitnetV2.Request",
                                      "nameLocations": [
                                        "22250:8:36",
                                        "22259:7:36"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 23476,
                                      "src": "22250:16:36"
                                    },
                                    "referencedDeclaration": 23476,
                                    "src": "22250:16:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                      "typeString": "struct WitnetV2.Request"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 5940,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 5936,
                                      "name": "_witnetQueryIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5894,
                                      "src": "22324:15:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 5938,
                                    "indexExpression": {
                                      "id": 5937,
                                      "name": "_ix",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5909,
                                      "src": "22340:3:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "22324:20:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "id": 5934,
                                    "name": "WitnetOracleDataLib",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12396,
                                    "src": "22287:19:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                      "typeString": "type(library WitnetOracleDataLib)"
                                    }
                                  },
                                  "id": 5935,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "22307:16:36",
                                  "memberName": "seekQueryRequest",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 12092,
                                  "src": "22287:36:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                                    "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                                  }
                                },
                                "id": 5939,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "22287:58:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                  "typeString": "struct WitnetV2.Request storage pointer"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "22250:95:36"
                            },
                            {
                              "expression": {
                                "id": 5944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 5941,
                                  "name": "_revenues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5904,
                                  "src": "22364:9:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "expression": {
                                    "id": 5942,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5933,
                                    "src": "22377:9:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                      "typeString": "struct WitnetV2.Request storage pointer"
                                    }
                                  },
                                  "id": 5943,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "22387:9:36",
                                  "memberName": "evmReward",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 23468,
                                  "src": "22377:19:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint72",
                                    "typeString": "uint72"
                                  }
                                },
                                "src": "22364:32:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5945,
                              "nodeType": "ExpressionStatement",
                              "src": "22364:32:36"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint24",
                                  "typeString": "uint24"
                                },
                                "id": 5949,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 5946,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5933,
                                    "src": "22419:9:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                      "typeString": "struct WitnetV2.Request storage pointer"
                                    }
                                  },
                                  "id": 5947,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "22429:11:36",
                                  "memberName": "gasCallback",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 23466,
                                  "src": "22419:21:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint24",
                                    "typeString": "uint24"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 5948,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "22443:1:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "22419:25:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 5987,
                                "nodeType": "Block",
                                "src": "22571:403:36",
                                "statements": [
                                  {
                                    "condition": {
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 5965,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 5959,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5933,
                                          "src": "22598:9:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                            "typeString": "struct WitnetV2.Request storage pointer"
                                          }
                                        },
                                        "id": 5960,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "22608:9:36",
                                        "memberName": "witnetRAD",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23472,
                                        "src": "22598:19:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "!=",
                                      "rightExpression": {
                                        "arguments": [
                                          {
                                            "hexValue": "30",
                                            "id": 5963,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "22629:1:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 5962,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "22621:7:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 5961,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "22621:7:36",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 5964,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22621:10:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "22598:33:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": {
                                      "id": 5985,
                                      "nodeType": "Block",
                                      "src": "22752:203:36",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 5983,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "id": 5975,
                                              "name": "_expenses",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5906,
                                              "src": "22878:9:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "+=",
                                            "rightHandSide": {
                                              "arguments": [
                                                {
                                                  "id": 5977,
                                                  "name": "_txGasPrice",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 5898,
                                                  "src": "22907:11:36",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                },
                                                {
                                                  "arguments": [
                                                    {
                                                      "hexValue": "30",
                                                      "id": 5980,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "kind": "number",
                                                      "lValueRequested": false,
                                                      "nodeType": "Literal",
                                                      "src": "22927:1:36",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                      },
                                                      "value": "0"
                                                    }
                                                  ],
                                                  "expression": {
                                                    "argumentTypes": [
                                                      {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                      }
                                                    ],
                                                    "id": 5979,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "22920:6:36",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_type$_t_uint16_$",
                                                      "typeString": "type(uint16)"
                                                    },
                                                    "typeName": {
                                                      "id": 5978,
                                                      "name": "uint16",
                                                      "nodeType": "ElementaryTypeName",
                                                      "src": "22920:6:36",
                                                      "typeDescriptions": {}
                                                    }
                                                  },
                                                  "id": 5981,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "typeConversion",
                                                  "lValueRequested": false,
                                                  "nameLocations": [],
                                                  "names": [],
                                                  "nodeType": "FunctionCall",
                                                  "src": "22920:9:36",
                                                  "tryCall": false,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint16",
                                                    "typeString": "uint16"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  {
                                                    "typeIdentifier": "t_uint16",
                                                    "typeString": "uint16"
                                                  }
                                                ],
                                                "id": 5976,
                                                "name": "estimateBaseFee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [
                                                  5196,
                                                  5428
                                                ],
                                                "referencedDeclaration": 5196,
                                                "src": "22891:15:36",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint16_$returns$_t_uint256_$",
                                                  "typeString": "function (uint256,uint16) view returns (uint256)"
                                                }
                                              },
                                              "id": 5982,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "22891:39:36",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "src": "22878:52:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 5984,
                                          "nodeType": "ExpressionStatement",
                                          "src": "22878:52:36"
                                        }
                                      ]
                                    },
                                    "id": 5986,
                                    "nodeType": "IfStatement",
                                    "src": "22594:361:36",
                                    "trueBody": {
                                      "id": 5974,
                                      "nodeType": "Block",
                                      "src": "22633:113:36",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 5972,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "id": 5966,
                                              "name": "_expenses",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5906,
                                              "src": "22660:9:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "+=",
                                            "rightHandSide": {
                                              "arguments": [
                                                {
                                                  "id": 5968,
                                                  "name": "_txGasPrice",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 5898,
                                                  "src": "22689:11:36",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                },
                                                {
                                                  "expression": {
                                                    "id": 5969,
                                                    "name": "__request",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 5933,
                                                    "src": "22702:9:36",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                                      "typeString": "struct WitnetV2.Request storage pointer"
                                                    }
                                                  },
                                                  "id": 5970,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberLocation": "22712:9:36",
                                                  "memberName": "witnetRAD",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 23472,
                                                  "src": "22702:19:36",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                  }
                                                ],
                                                "id": 5967,
                                                "name": "estimateBaseFee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [
                                                  5196,
                                                  5428
                                                ],
                                                "referencedDeclaration": 5428,
                                                "src": "22673:15:36",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_bytes32_$returns$_t_uint256_$",
                                                  "typeString": "function (uint256,bytes32) view returns (uint256)"
                                                }
                                              },
                                              "id": 5971,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "22673:49:36",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "src": "22660:62:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 5973,
                                          "nodeType": "ExpressionStatement",
                                          "src": "22660:62:36"
                                        }
                                      ]
                                    }
                                  }
                                ]
                              },
                              "id": 5988,
                              "nodeType": "IfStatement",
                              "src": "22415:559:36",
                              "trueBody": {
                                "id": 5958,
                                "nodeType": "Block",
                                "src": "22446:119:36",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 5956,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 5950,
                                        "name": "_expenses",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5906,
                                        "src": "22469:9:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "id": 5952,
                                            "name": "_txGasPrice",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5898,
                                            "src": "22510:11:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "expression": {
                                              "id": 5953,
                                              "name": "__request",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5933,
                                              "src": "22523:9:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                                "typeString": "struct WitnetV2.Request storage pointer"
                                              }
                                            },
                                            "id": 5954,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "22533:11:36",
                                            "memberName": "gasCallback",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 23466,
                                            "src": "22523:21:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint24",
                                              "typeString": "uint24"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint24",
                                              "typeString": "uint24"
                                            }
                                          ],
                                          "id": 5951,
                                          "name": "estimateBaseFeeWithCallback",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5206,
                                          "src": "22482:27:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                                            "typeString": "function (uint256,uint24) view returns (uint256)"
                                          }
                                        },
                                        "id": 5955,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22482:63:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "22469:76:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5957,
                                    "nodeType": "ExpressionStatement",
                                    "src": "22469:76:36"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "id": 5996,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 5989,
                                  "name": "_expenses",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5906,
                                  "src": "22992:9:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 5995,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "expression": {
                                          "id": 5990,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5933,
                                          "src": "23006:9:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                            "typeString": "struct WitnetV2.Request storage pointer"
                                          }
                                        },
                                        "id": 5991,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "23016:9:36",
                                        "memberName": "witnetSLA",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23475,
                                        "src": "23006:19:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                          "typeString": "struct WitnetV2.RadonSLA storage ref"
                                        }
                                      },
                                      "id": 5992,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "23026:15:36",
                                      "memberName": "nanoWitTotalFee",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 23594,
                                      "src": "23006:35:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_struct$_RadonSLA_$23503_storage_ptr_$returns$_t_uint64_$attached_to$_t_struct$_RadonSLA_$23503_storage_ptr_$",
                                        "typeString": "function (struct WitnetV2.RadonSLA storage pointer) view returns (uint64)"
                                      }
                                    },
                                    "id": 5993,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "23006:37:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "id": 5994,
                                    "name": "_nanoWitPrice",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5900,
                                    "src": "23046:13:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "23006:53:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "22992:67:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5997,
                              "nodeType": "ExpressionStatement",
                              "src": "22992:67:36"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5912,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5909,
                      "src": "22084:3:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5913,
                        "name": "_witnetQueryIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5894,
                        "src": "22090:15:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 5914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "22106:6:36",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "22090:22:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "22084:28:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6001,
                  "initializationExpression": {
                    "assignments": [
                      5909
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5909,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "22075:3:36",
                        "nodeType": "VariableDeclaration",
                        "scope": 6001,
                        "src": "22070:8:36",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5908,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "22070:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5911,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 5910,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22081:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "22070:12:36"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 5917,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "22114:6:36",
                      "subExpression": {
                        "id": 5916,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5909,
                        "src": "22114:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5918,
                    "nodeType": "ExpressionStatement",
                    "src": "22114:6:36"
                  },
                  "nodeType": "ForStatement",
                  "src": "22065:1021:36"
                }
              ]
            },
            "documentation": {
              "id": 5891,
              "nodeType": "StructuredDocumentation",
              "src": "21444:302:36",
              "text": "@notice Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,\n @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \n @notice queries providing no actual earnings."
            },
            "functionSelector": "93d5185c",
            "id": 6003,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateReportEarnings",
            "nameLocation": "21761:22:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5902,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "21984:8:36"
            },
            "parameters": {
              "id": 5901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5894,
                  "mutability": "mutable",
                  "name": "_witnetQueryIds",
                  "nameLocation": "21817:15:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6003,
                  "src": "21798:34:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5892,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "21798:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5893,
                    "nodeType": "ArrayTypeName",
                    "src": "21798:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5896,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6003,
                  "src": "21848:14:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5895,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "21848:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5898,
                  "mutability": "mutable",
                  "name": "_txGasPrice",
                  "nameLocation": "21885:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6003,
                  "src": "21877:19:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5897,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21877:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5900,
                  "mutability": "mutable",
                  "name": "_nanoWitPrice",
                  "nameLocation": "21919:13:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6003,
                  "src": "21911:21:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21911:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21783:160:36"
            },
            "returnParameters": {
              "id": 5907,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5904,
                  "mutability": "mutable",
                  "name": "_revenues",
                  "nameLocation": "22019:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6003,
                  "src": "22011:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5903,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22011:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5906,
                  "mutability": "mutable",
                  "name": "_expenses",
                  "nameLocation": "22038:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6003,
                  "src": "22030:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5905,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22030:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22010:38:36"
            },
            "scope": 6817,
            "src": "21752:1341:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13346
            ],
            "body": {
              "id": 6020,
              "nodeType": "Block",
              "src": "23474:92:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6016,
                        "name": "registry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4894,
                        "src": "23538:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                          "typeString": "contract WitnetRequestBytecodes"
                        }
                      },
                      {
                        "id": 6017,
                        "name": "_queryIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6007,
                        "src": "23548:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                          "typeString": "contract WitnetRequestBytecodes"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 6014,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "23492:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 6015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "23512:25:36",
                      "memberName": "extractWitnetDataRequests",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12356,
                      "src": "23492:45:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_contract$_WitnetRequestBytecodes_$849_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$",
                        "typeString": "function (contract WitnetRequestBytecodes,uint256[] memory) view returns (bytes memory[] memory)"
                      }
                    },
                    "id": 6018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23492:66:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                      "typeString": "bytes memory[] memory"
                    }
                  },
                  "functionReturnParameters": 6013,
                  "id": 6019,
                  "nodeType": "Return",
                  "src": "23485:73:36"
                }
              ]
            },
            "documentation": {
              "id": 6004,
              "nodeType": "StructuredDocumentation",
              "src": "23101:202:36",
              "text": "@notice Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries.\n @dev Returns empty buffer if the query does not exist.\n @param _queryIds Query identifies."
            },
            "functionSelector": "45ea6c17",
            "id": 6021,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "extractWitnetDataRequests",
            "nameLocation": "23318:25:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6009,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "23415:8:36"
            },
            "parameters": {
              "id": 6008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6007,
                  "mutability": "mutable",
                  "name": "_queryIds",
                  "nameLocation": "23363:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6021,
                  "src": "23344:28:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6005,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "23344:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6006,
                    "nodeType": "ArrayTypeName",
                    "src": "23344:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23343:30:36"
            },
            "returnParameters": {
              "id": 6013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6012,
                  "mutability": "mutable",
                  "name": "_bytecodes",
                  "nameLocation": "23457:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6021,
                  "src": "23442:25:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                    "typeString": "bytes[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6010,
                      "name": "bytes",
                      "nodeType": "ElementaryTypeName",
                      "src": "23442:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage_ptr",
                        "typeString": "bytes"
                      }
                    },
                    "id": 6011,
                    "nodeType": "ArrayTypeName",
                    "src": "23442:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                      "typeString": "bytes[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23441:27:36"
            },
            "scope": 6817,
            "src": "23309:257:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13358
            ],
            "body": {
              "id": 6061,
              "nodeType": "Block",
              "src": "24545:492:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6043,
                            "name": "_witnetQueryResultCborBytes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6028,
                            "src": "24616:27:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          },
                          "id": 6044,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "24644:6:36",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "24616:34:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 6045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "24654:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "24616:39:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "726573756c742063616e6e6f7420626520656d707479",
                        "id": 6047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "24671:24:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ccfc17ffe113a62111ac4353d6344750c7ff8d2c9b9400b3b822a627b2b56cc8",
                          "typeString": "literal_string \"result cannot be empty\""
                        },
                        "value": "result cannot be empty"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ccfc17ffe113a62111ac4353d6344750c7ff8d2c9b9400b3b822a627b2b56cc8",
                          "typeString": "literal_string \"result cannot be empty\""
                        }
                      ],
                      "id": 6042,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "24593:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24593:113:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6049,
                  "nodeType": "ExpressionStatement",
                  "src": "24593:113:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6051,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6024,
                        "src": "24882:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 6054,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967292,
                              "src": "24918:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 6055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "24924:9:36",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "src": "24918:15:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "24911:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": {
                            "id": 6052,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "24911:6:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6056,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24911:23:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "id": 6057,
                        "name": "_witnetQueryResultTallyHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6026,
                        "src": "24949:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6058,
                        "name": "_witnetQueryResultCborBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6028,
                        "src": "24991:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 6050,
                      "name": "__reportResultAndReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6550,
                      "src": "24844:23:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint32,bytes32,bytes calldata) returns (uint256)"
                      }
                    },
                    "id": 6059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24844:185:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6041,
                  "id": 6060,
                  "nodeType": "Return",
                  "src": "24837:192:36"
                }
              ]
            },
            "documentation": {
              "id": 6022,
              "nodeType": "StructuredDocumentation",
              "src": "23574:643:36",
              "text": "Reports the Witnet-provable result to a previously posted request. \n @dev Will assume `block.timestamp` as the timestamp at which the request was solved.\n @dev Fails if:\n @dev - the `_witnetQueryId` is not in 'Posted' status.\n @dev - provided `_witnetQueryResultTallyHash` is zero;\n @dev - length of provided `_result` is zero.\n @param _witnetQueryId The unique identifier of the data request.\n @param _witnetQueryResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\n @param _witnetQueryResultCborBytes The result itself as bytes."
            },
            "functionSelector": "6280bce8",
            "id": 6062,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6032,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6031,
                  "name": "onlyReporters",
                  "nameLocations": [
                    "24436:13:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5027,
                  "src": "24436:13:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "24436:13:36"
              },
              {
                "arguments": [
                  {
                    "id": 6034,
                    "name": "_witnetQueryId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6024,
                    "src": "24468:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "expression": {
                      "expression": {
                        "id": 6035,
                        "name": "WitnetV2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23640,
                        "src": "24484:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                          "typeString": "type(library WitnetV2)"
                        }
                      },
                      "id": 6036,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "24493:11:36",
                      "memberName": "QueryStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23461,
                      "src": "24484:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                        "typeString": "type(enum WitnetV2.QueryStatus)"
                      }
                    },
                    "id": 6037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "24505:6:36",
                    "memberName": "Posted",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 23458,
                    "src": "24484:27:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  }
                ],
                "id": 6038,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6033,
                  "name": "inStatus",
                  "nameLocations": [
                    "24459:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4993,
                  "src": "24459:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "24459:53:36"
              }
            ],
            "name": "reportResult",
            "nameLocation": "24232:12:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6030,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "24418:8:36"
            },
            "parameters": {
              "id": 6029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6024,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "24267:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6062,
                  "src": "24259:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6023,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24259:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6026,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTallyHash",
                  "nameLocation": "24304:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6062,
                  "src": "24296:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6025,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24296:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6028,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultCborBytes",
                  "nameLocation": "24361:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6062,
                  "src": "24346:42:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6027,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "24346:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24244:155:36"
            },
            "returnParameters": {
              "id": 6041,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6040,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6062,
                  "src": "24531:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6039,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24531:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24530:9:36"
            },
            "scope": 6817,
            "src": "24223:814:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13372
            ],
            "body": {
              "id": 6112,
              "nodeType": "Block",
              "src": "26157:657:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 6088,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 6086,
                            "name": "_witnetQueryResultTimestamp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6067,
                            "src": "26222:27:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 6087,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "26252:1:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "26222:31:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 6089,
                            "name": "_witnetQueryResultTimestamp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6067,
                            "src": "26275:27:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "expression": {
                              "id": 6090,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967292,
                              "src": "26306:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 6091,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26312:9:36",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "src": "26306:15:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26275:46:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "26222:99:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "6261642074696d657374616d70",
                        "id": 6094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26337:15:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fd972d2f7059975408733d0027af02f68a86abdae415cfd4f9f6ec59581f8976",
                          "typeString": "literal_string \"bad timestamp\""
                        },
                        "value": "bad timestamp"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fd972d2f7059975408733d0027af02f68a86abdae415cfd4f9f6ec59581f8976",
                          "typeString": "literal_string \"bad timestamp\""
                        }
                      ],
                      "id": 6085,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "26199:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26199:164:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6096,
                  "nodeType": "ExpressionStatement",
                  "src": "26199:164:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6098,
                            "name": "_witnetQueryResultCborBytes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6071,
                            "src": "26433:27:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          },
                          "id": 6099,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "26461:6:36",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "26433:34:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 6100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "26471:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "26433:39:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "726573756c742063616e6e6f7420626520656d707479",
                        "id": 6102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "26488:24:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ccfc17ffe113a62111ac4353d6344750c7ff8d2c9b9400b3b822a627b2b56cc8",
                          "typeString": "literal_string \"result cannot be empty\""
                        },
                        "value": "result cannot be empty"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ccfc17ffe113a62111ac4353d6344750c7ff8d2c9b9400b3b822a627b2b56cc8",
                          "typeString": "literal_string \"result cannot be empty\""
                        }
                      ],
                      "id": 6097,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "26410:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26410:113:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6104,
                  "nodeType": "ExpressionStatement",
                  "src": "26410:113:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6106,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6065,
                        "src": "26655:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6107,
                        "name": "_witnetQueryResultTimestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6067,
                        "src": "26684:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "id": 6108,
                        "name": "_witnetQueryResultTallyHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6069,
                        "src": "26726:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6109,
                        "name": "_witnetQueryResultCborBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6071,
                        "src": "26768:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 6105,
                      "name": "__reportResultAndReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6550,
                      "src": "26617:23:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint32,bytes32,bytes calldata) returns (uint256)"
                      }
                    },
                    "id": 6110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26617:189:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6084,
                  "id": 6111,
                  "nodeType": "Return",
                  "src": "26609:197:36"
                }
              ]
            },
            "documentation": {
              "id": 6063,
              "nodeType": "StructuredDocumentation",
              "src": "25045:725:36",
              "text": "Reports the Witnet-provable result to a previously posted request.\n @dev Fails if:\n @dev - called from unauthorized address;\n @dev - the `_witnetQueryId` is not in 'Posted' status.\n @dev - provided `_witnetQueryResultTallyHash` is zero;\n @dev - length of provided `_witnetQueryResultCborBytes` is zero.\n @param _witnetQueryId The unique query identifier\n @param _witnetQueryResultTimestamp Timestamp at which the reported value was captured by the Witnet blockchain. \n @param _witnetQueryResultTallyHash Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\n @param _witnetQueryResultCborBytes The result itself as bytes."
            },
            "functionSelector": "b207e730",
            "id": 6113,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6075,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6074,
                  "name": "onlyReporters",
                  "nameLocations": [
                    "26048:13:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5027,
                  "src": "26048:13:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "26048:13:36"
              },
              {
                "arguments": [
                  {
                    "id": 6077,
                    "name": "_witnetQueryId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6065,
                    "src": "26080:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "expression": {
                      "expression": {
                        "id": 6078,
                        "name": "WitnetV2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23640,
                        "src": "26096:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                          "typeString": "type(library WitnetV2)"
                        }
                      },
                      "id": 6079,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "26105:11:36",
                      "memberName": "QueryStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23461,
                      "src": "26096:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                        "typeString": "type(enum WitnetV2.QueryStatus)"
                      }
                    },
                    "id": 6080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "26117:6:36",
                    "memberName": "Posted",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 23458,
                    "src": "26096:27:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$23461",
                      "typeString": "enum WitnetV2.QueryStatus"
                    }
                  }
                ],
                "id": 6081,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6076,
                  "name": "inStatus",
                  "nameLocations": [
                    "26071:8:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4993,
                  "src": "26071:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "26071:53:36"
              }
            ],
            "name": "reportResult",
            "nameLocation": "25785:12:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6073,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "26030:8:36"
            },
            "parameters": {
              "id": 6072,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6065,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "25820:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6113,
                  "src": "25812:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6064,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25812:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6067,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTimestamp",
                  "nameLocation": "25857:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6113,
                  "src": "25849:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6066,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25849:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6069,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTallyHash",
                  "nameLocation": "25907:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6113,
                  "src": "25899:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6068,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25899:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6071,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultCborBytes",
                  "nameLocation": "25964:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6113,
                  "src": "25949:42:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6070,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "25949:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25797:205:36"
            },
            "returnParameters": {
              "id": 6084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6083,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6113,
                  "src": "26143:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6082,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "26143:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26142:9:36"
            },
            "scope": 6817,
            "src": "25776:1038:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13382
            ],
            "body": {
              "id": 6233,
              "nodeType": "Block",
              "src": "27655:1484:36",
              "statements": [
                {
                  "body": {
                    "id": 6217,
                    "nodeType": "Block",
                    "src": "27719:1158:36",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_QueryStatus_$23461",
                            "typeString": "enum WitnetV2.QueryStatus"
                          },
                          "id": 6147,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "expression": {
                                  "baseExpression": {
                                    "id": 6139,
                                    "name": "_batchResults",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6118,
                                    "src": "27792:13:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                    }
                                  },
                                  "id": 6141,
                                  "indexExpression": {
                                    "id": 6140,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6127,
                                    "src": "27806:2:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "27792:17:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                    "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                  }
                                },
                                "id": 6142,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "27810:7:36",
                                "memberName": "queryId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 13384,
                                "src": "27792:25:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 6137,
                                "name": "WitnetOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12396,
                                "src": "27756:19:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                  "typeString": "type(library WitnetOracleDataLib)"
                                }
                              },
                              "id": 6138,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "27776:15:36",
                              "memberName": "seekQueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12172,
                              "src": "27756:35:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "function (uint256) view returns (enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 6143,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27756:62:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 6144,
                                "name": "WitnetV2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23640,
                                "src": "27843:8:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                  "typeString": "type(library WitnetV2)"
                                }
                              },
                              "id": 6145,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "27852:11:36",
                              "memberName": "QueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 23461,
                              "src": "27843:20:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "type(enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 6146,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "27864:6:36",
                            "memberName": "Posted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23458,
                            "src": "27843:27:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "src": "27756:114:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 6175,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 6167,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "baseExpression": {
                                    "id": 6162,
                                    "name": "_batchResults",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6118,
                                    "src": "28133:13:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                    }
                                  },
                                  "id": 6164,
                                  "indexExpression": {
                                    "id": 6163,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6127,
                                    "src": "28147:2:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "28133:17:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                    "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                  }
                                },
                                "id": 6165,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "28151:20:36",
                                "memberName": "queryResultTimestamp",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 13386,
                                "src": "28133:38:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 6166,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "28175:1:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "28133:43:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6174,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "expression": {
                                    "baseExpression": {
                                      "id": 6168,
                                      "name": "_batchResults",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6118,
                                      "src": "28201:13:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                      }
                                    },
                                    "id": 6170,
                                    "indexExpression": {
                                      "id": 6169,
                                      "name": "_i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6127,
                                      "src": "28215:2:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "28201:17:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                      "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                    }
                                  },
                                  "id": 6171,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "28219:20:36",
                                  "memberName": "queryResultCborBytes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 13390,
                                  "src": "28201:38:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                },
                                "id": 6172,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "28240:6:36",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "28201:45:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 6173,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "28250:1:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "28201:50:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "28133:118:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 6214,
                            "nodeType": "Block",
                            "src": "28551:315:36",
                            "statements": [
                              {
                                "expression": {
                                  "id": 6212,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 6193,
                                    "name": "_batchReward",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6124,
                                    "src": "28570:12:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "baseExpression": {
                                            "id": 6195,
                                            "name": "_batchResults",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6118,
                                            "src": "28623:13:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                              "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                            }
                                          },
                                          "id": 6197,
                                          "indexExpression": {
                                            "id": 6196,
                                            "name": "_i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6127,
                                            "src": "28637:2:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "28623:17:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                            "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                          }
                                        },
                                        "id": 6198,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "28641:7:36",
                                        "memberName": "queryId",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 13384,
                                        "src": "28623:25:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "expression": {
                                          "baseExpression": {
                                            "id": 6199,
                                            "name": "_batchResults",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6118,
                                            "src": "28671:13:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                              "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                            }
                                          },
                                          "id": 6201,
                                          "indexExpression": {
                                            "id": 6200,
                                            "name": "_i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6127,
                                            "src": "28685:2:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "28671:17:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                            "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                          }
                                        },
                                        "id": 6202,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "28689:20:36",
                                        "memberName": "queryResultTimestamp",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 13386,
                                        "src": "28671:38:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        }
                                      },
                                      {
                                        "expression": {
                                          "baseExpression": {
                                            "id": 6203,
                                            "name": "_batchResults",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6118,
                                            "src": "28732:13:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                              "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                            }
                                          },
                                          "id": 6205,
                                          "indexExpression": {
                                            "id": 6204,
                                            "name": "_i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6127,
                                            "src": "28746:2:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "28732:17:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                            "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                          }
                                        },
                                        "id": 6206,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "28750:20:36",
                                        "memberName": "queryResultTallyHash",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 13388,
                                        "src": "28732:38:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "expression": {
                                          "baseExpression": {
                                            "id": 6207,
                                            "name": "_batchResults",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6118,
                                            "src": "28793:13:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                              "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                            }
                                          },
                                          "id": 6209,
                                          "indexExpression": {
                                            "id": 6208,
                                            "name": "_i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6127,
                                            "src": "28807:2:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "28793:17:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                            "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                          }
                                        },
                                        "id": 6210,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "28811:20:36",
                                        "memberName": "queryResultCborBytes",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 13390,
                                        "src": "28793:38:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_calldata_ptr",
                                          "typeString": "bytes calldata"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_uint32",
                                          "typeString": "uint32"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes_calldata_ptr",
                                          "typeString": "bytes calldata"
                                        }
                                      ],
                                      "id": 6194,
                                      "name": "__reportResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6518,
                                      "src": "28586:14:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_uint256_$",
                                        "typeString": "function (uint256,uint32,bytes32,bytes calldata) returns (uint256)"
                                      }
                                    },
                                    "id": 6211,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "28586:264:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "28570:280:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 6213,
                                "nodeType": "ExpressionStatement",
                                "src": "28570:280:36"
                              }
                            ]
                          },
                          "id": 6215,
                          "nodeType": "IfStatement",
                          "src": "28111:755:36",
                          "trueBody": {
                            "id": 6192,
                            "nodeType": "Block",
                            "src": "28267:278:36",
                            "statements": [
                              {
                                "eventCall": {
                                  "arguments": [
                                    {
                                      "expression": {
                                        "baseExpression": {
                                          "id": 6177,
                                          "name": "_batchResults",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6118,
                                          "src": "28330:13:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                            "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                          }
                                        },
                                        "id": 6179,
                                        "indexExpression": {
                                          "id": 6178,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6127,
                                          "src": "28344:2:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "28330:17:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                          "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                        }
                                      },
                                      "id": 6180,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "28348:7:36",
                                      "memberName": "queryId",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 13384,
                                      "src": "28330:25:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [],
                                              "expression": {
                                                "argumentTypes": [],
                                                "id": 6185,
                                                "name": "class",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [
                                                  5176
                                                ],
                                                "referencedDeclaration": 5176,
                                                "src": "28429:5:36",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
                                                  "typeString": "function () view returns (string memory)"
                                                }
                                              },
                                              "id": 6186,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "28429:7:36",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                              }
                                            },
                                            {
                                              "hexValue": "3a20696e76616c6964207265706f72742064617461",
                                              "id": 6187,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "28463:23:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_18e93b6a9ca9a828871ff24f0fc4025c67d39029bf31e6664071c37d5dc700dd",
                                                "typeString": "literal_string \": invalid report data\""
                                              },
                                              "value": ": invalid report data"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                              },
                                              {
                                                "typeIdentifier": "t_stringliteral_18e93b6a9ca9a828871ff24f0fc4025c67d39029bf31e6664071c37d5dc700dd",
                                                "typeString": "literal_string \": invalid report data\""
                                              }
                                            ],
                                            "expression": {
                                              "id": 6183,
                                              "name": "abi",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4294967295,
                                              "src": "28386:3:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_abi",
                                                "typeString": "abi"
                                              }
                                            },
                                            "id": 6184,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "memberLocation": "28390:12:36",
                                            "memberName": "encodePacked",
                                            "nodeType": "MemberAccess",
                                            "src": "28386:16:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                              "typeString": "function () pure returns (bytes memory)"
                                            }
                                          },
                                          "id": 6188,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "28386:123:36",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        ],
                                        "id": 6182,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "28379:6:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                          "typeString": "type(string storage pointer)"
                                        },
                                        "typeName": {
                                          "id": 6181,
                                          "name": "string",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "28379:6:36",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 6189,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "28379:131:36",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    ],
                                    "id": 6176,
                                    "name": "BatchReportError",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13397,
                                    "src": "28291:16:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                      "typeString": "function (uint256,string memory)"
                                    }
                                  },
                                  "id": 6190,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28291:238:36",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6191,
                                "nodeType": "EmitStatement",
                                "src": "28286:243:36"
                              }
                            ]
                          }
                        },
                        "id": 6216,
                        "nodeType": "IfStatement",
                        "src": "27734:1132:36",
                        "trueBody": {
                          "id": 6161,
                          "nodeType": "Block",
                          "src": "27886:219:36",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "baseExpression": {
                                        "id": 6149,
                                        "name": "_batchResults",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6118,
                                        "src": "27949:13:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                                          "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                                        }
                                      },
                                      "id": 6151,
                                      "indexExpression": {
                                        "id": 6150,
                                        "name": "_i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6127,
                                        "src": "27963:2:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "27949:17:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_BatchResult_$13391_calldata_ptr",
                                        "typeString": "struct IWitnetOracleReporter.BatchResult calldata"
                                      }
                                    },
                                    "id": 6152,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "27967:7:36",
                                    "memberName": "queryId",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 13384,
                                    "src": "27949:25:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "expression": {
                                            "id": 6155,
                                            "name": "WitnetV2",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23640,
                                            "src": "28042:8:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                              "typeString": "type(library WitnetV2)"
                                            }
                                          },
                                          "id": 6156,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "28051:11:36",
                                          "memberName": "QueryStatus",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 23461,
                                          "src": "28042:20:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                                            "typeString": "type(enum WitnetV2.QueryStatus)"
                                          }
                                        },
                                        "id": 6157,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberLocation": "28063:6:36",
                                        "memberName": "Posted",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23458,
                                        "src": "28042:27:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_QueryStatus_$23461",
                                          "typeString": "enum WitnetV2.QueryStatus"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_QueryStatus_$23461",
                                          "typeString": "enum WitnetV2.QueryStatus"
                                        }
                                      ],
                                      "expression": {
                                        "id": 6153,
                                        "name": "WitnetOracleDataLib",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12396,
                                        "src": "27997:19:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                          "typeString": "type(library WitnetOracleDataLib)"
                                        }
                                      },
                                      "id": 6154,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "28017:24:36",
                                      "memberName": "notInStatusRevertMessage",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 12395,
                                      "src": "27997:44:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_delegatecall_pure$_t_enum$_QueryStatus_$23461_$returns$_t_string_memory_ptr_$",
                                        "typeString": "function (enum WitnetV2.QueryStatus) pure returns (string memory)"
                                      }
                                    },
                                    "id": 6158,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "27997:73:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 6148,
                                  "name": "BatchReportError",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13397,
                                  "src": "27910:16:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (uint256,string memory)"
                                  }
                                },
                                "id": 6159,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "27910:179:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6160,
                              "nodeType": "EmitStatement",
                              "src": "27905:184:36"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6130,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6127,
                      "src": "27685:2:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 6131,
                        "name": "_batchResults",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6118,
                        "src": "27690:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct IWitnetOracleReporter.BatchResult calldata[] calldata"
                        }
                      },
                      "id": 6132,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27704:6:36",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "27690:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "27685:25:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6218,
                  "initializationExpression": {
                    "assignments": [
                      6127
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6127,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "27677:2:36",
                        "nodeType": "VariableDeclaration",
                        "scope": 6218,
                        "src": "27672:7:36",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6126,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "27672:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6129,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 6128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "27682:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "27672:11:36"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 6135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "27712:5:36",
                      "subExpression": {
                        "id": 6134,
                        "name": "_i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "27712:2:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6136,
                    "nodeType": "ExpressionStatement",
                    "src": "27712:5:36"
                  },
                  "nodeType": "ForStatement",
                  "src": "27666:1211:36"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6219,
                      "name": "_batchReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6124,
                      "src": "28987:12:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "29002:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "28987:16:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6232,
                  "nodeType": "IfStatement",
                  "src": "28983:149:36",
                  "trueBody": {
                    "id": 6231,
                    "nodeType": "Block",
                    "src": "29005:127:36",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 6225,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "29063:3:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 6226,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "29067:6:36",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "29063:10:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 6224,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "29055:8:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_payable_$",
                                  "typeString": "type(address payable)"
                                },
                                "typeName": {
                                  "id": 6223,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "29055:8:36",
                                  "stateMutability": "payable",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 6227,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "29055:19:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "id": 6228,
                              "name": "_batchReward",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6124,
                              "src": "29093:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6222,
                            "name": "__safeTransferTo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24144,
                            "src": "29020:16:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
                              "typeString": "function (address payable,uint256)"
                            }
                          },
                          "id": 6229,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "29020:100:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6230,
                        "nodeType": "ExpressionStatement",
                        "src": "29020:100:36"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 6114,
              "nodeType": "StructuredDocumentation",
              "src": "26822:645:36",
              "text": "@notice Reports Witnet-provided results to multiple requests within a single EVM tx.\n @notice Emits either a WitnetQueryResponse* or a BatchReportError event per batched report.\n @dev Fails only if called from unauthorized address.\n @param _batchResults Array of BatchResult structs, every one containing:\n         - unique query identifier;\n         - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;\n         - hash of the corresponding data request tx at the Witnet side-chain level;\n         - data request result in raw bytes."
            },
            "functionSelector": "06eb2c42",
            "id": 6234,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6122,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6121,
                  "name": "onlyReporters",
                  "nameLocations": [
                    "27596:13:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5027,
                  "src": "27596:13:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "27596:13:36"
              }
            ],
            "name": "reportResultBatch",
            "nameLocation": "27482:17:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6120,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "27578:8:36"
            },
            "parameters": {
              "id": 6119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6118,
                  "mutability": "mutable",
                  "name": "_batchResults",
                  "nameLocation": "27545:13:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6234,
                  "src": "27500:58:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct IWitnetOracleReporter.BatchResult[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6116,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 6115,
                        "name": "IWitnetOracleReporter.BatchResult",
                        "nameLocations": [
                          "27500:21:36",
                          "27522:11:36"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 13391,
                        "src": "27500:33:36"
                      },
                      "referencedDeclaration": 13391,
                      "src": "27500:33:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_BatchResult_$13391_storage_ptr",
                        "typeString": "struct IWitnetOracleReporter.BatchResult"
                      }
                    },
                    "id": 6117,
                    "nodeType": "ArrayTypeName",
                    "src": "27500:35:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_BatchResult_$13391_storage_$dyn_storage_ptr",
                      "typeString": "struct IWitnetOracleReporter.BatchResult[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27499:60:36"
            },
            "returnParameters": {
              "id": 6125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6124,
                  "mutability": "mutable",
                  "name": "_batchReward",
                  "nameLocation": "27636:12:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6234,
                  "src": "27628:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6123,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27628:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27627:22:36"
            },
            "scope": 6817,
            "src": "27473:1666:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              13743
            ],
            "body": {
              "id": 6248,
              "nodeType": "Block",
              "src": "29608:67:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6245,
                        "name": "_reporter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6237,
                        "src": "29657:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 6243,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "29626:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 6244,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "29646:10:36",
                      "memberName": "isReporter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12059,
                      "src": "29626:30:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                        "typeString": "function (address) view returns (bool)"
                      }
                    },
                    "id": 6246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29626:41:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6242,
                  "id": 6247,
                  "nodeType": "Return",
                  "src": "29619:48:36"
                }
              ]
            },
            "documentation": {
              "id": 6235,
              "nodeType": "StructuredDocumentation",
              "src": "29393:134:36",
              "text": "Tells whether given address is included in the active reporters control list.\n @param _reporter The address to be checked."
            },
            "functionSelector": "044ad7be",
            "id": 6249,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isReporter",
            "nameLocation": "29542:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6239,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "29584:8:36"
            },
            "parameters": {
              "id": 6238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6237,
                  "mutability": "mutable",
                  "name": "_reporter",
                  "nameLocation": "29561:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6249,
                  "src": "29553:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6236,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "29553:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29552:19:36"
            },
            "returnParameters": {
              "id": 6242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6241,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6249,
                  "src": "29602:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6240,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "29602:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29601:6:36"
            },
            "scope": 6817,
            "src": "29533:142:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13750
            ],
            "body": {
              "id": 6263,
              "nodeType": "Block",
              "src": "30059:45:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6260,
                        "name": "_reporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6253,
                        "src": "30085:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "id": 6259,
                      "name": "__setReporters",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6771,
                      "src": "30070:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 6261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30070:26:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6262,
                  "nodeType": "ExpressionStatement",
                  "src": "30070:26:36"
                }
              ]
            },
            "documentation": {
              "id": 6250,
              "nodeType": "StructuredDocumentation",
              "src": "29683:261:36",
              "text": "Adds given addresses to the active reporters control list.\n @dev Can only be called from the owner address.\n @dev Emits the `ReportersSet` event. \n @param _reporters List of addresses to be added to the active reporters control list."
            },
            "functionSelector": "4c9f72e3",
            "id": 6264,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6257,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6256,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "30044:9:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 312,
                  "src": "30044:9:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "30044:9:36"
              }
            ],
            "name": "setReporters",
            "nameLocation": "29959:12:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6255,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "30026:8:36"
            },
            "parameters": {
              "id": 6254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6253,
                  "mutability": "mutable",
                  "name": "_reporters",
                  "nameLocation": "29989:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6264,
                  "src": "29972:27:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6251,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "29972:7:36",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6252,
                    "nodeType": "ArrayTypeName",
                    "src": "29972:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29971:29:36"
            },
            "returnParameters": {
              "id": 6258,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30059:0:36"
            },
            "scope": 6817,
            "src": "29950:154:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13757
            ],
            "body": {
              "id": 6305,
              "nodeType": "Block",
              "src": "30501:231:36",
              "statements": [
                {
                  "body": {
                    "id": 6299,
                    "nodeType": "Block",
                    "src": "30563:118:36",
                    "statements": [
                      {
                        "assignments": [
                          6286
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6286,
                            "mutability": "mutable",
                            "name": "_reporter",
                            "nameLocation": "30586:9:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 6299,
                            "src": "30578:17:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 6285,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "30578:7:36",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6290,
                        "initialValue": {
                          "baseExpression": {
                            "id": 6287,
                            "name": "_exReporters",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6268,
                            "src": "30598:12:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "id": 6289,
                          "indexExpression": {
                            "id": 6288,
                            "name": "ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6275,
                            "src": "30611:2:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30598:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "30578:36:36"
                      },
                      {
                        "expression": {
                          "id": 6297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 6291,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6783,
                                  "src": "30629:9:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                                  }
                                },
                                "id": 6292,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "30629:11:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                                  "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                                }
                              },
                              "id": 6293,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "30641:9:36",
                              "memberName": "reporters",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12035,
                              "src": "30629:21:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 6295,
                            "indexExpression": {
                              "id": 6294,
                              "name": "_reporter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6286,
                              "src": "30651:9:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "30629:32:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "66616c7365",
                            "id": 6296,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "30664:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "30629:40:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6298,
                        "nodeType": "ExpressionStatement",
                        "src": "30629:40:36"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6281,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6278,
                      "name": "ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6275,
                      "src": "30530:2:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 6279,
                        "name": "_exReporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6268,
                        "src": "30535:12:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 6280,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30548:6:36",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "30535:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "30530:24:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6300,
                  "initializationExpression": {
                    "assignments": [
                      6275
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6275,
                        "mutability": "mutable",
                        "name": "ix",
                        "nameLocation": "30522:2:36",
                        "nodeType": "VariableDeclaration",
                        "scope": 6300,
                        "src": "30517:7:36",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6274,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "30517:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6277,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 6276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "30527:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "30517:11:36"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 6283,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "30556:5:36",
                      "subExpression": {
                        "id": 6282,
                        "name": "ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6275,
                        "src": "30556:2:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6284,
                    "nodeType": "ExpressionStatement",
                    "src": "30556:5:36"
                  },
                  "nodeType": "ForStatement",
                  "src": "30512:169:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6302,
                        "name": "_exReporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6268,
                        "src": "30711:12:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "id": 6301,
                      "name": "ReportersUnset",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13735,
                      "src": "30696:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 6303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30696:28:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6304,
                  "nodeType": "EmitStatement",
                  "src": "30691:33:36"
                }
              ]
            },
            "documentation": {
              "id": 6265,
              "nodeType": "StructuredDocumentation",
              "src": "30112:270:36",
              "text": "Removes given addresses from the active reporters control list.\n @dev Can only be called from the owner address.\n @dev Emits the `ReportersUnset` event. \n @param _exReporters List of addresses to be added to the active reporters control list."
            },
            "functionSelector": "28a78d9b",
            "id": 6306,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6272,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6271,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "30486:9:36"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 312,
                  "src": "30486:9:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "30486:9:36"
              }
            ],
            "name": "unsetReporters",
            "nameLocation": "30397:14:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6270,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "30468:8:36"
            },
            "parameters": {
              "id": 6269,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6268,
                  "mutability": "mutable",
                  "name": "_exReporters",
                  "nameLocation": "30429:12:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6306,
                  "src": "30412:29:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6266,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "30412:7:36",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6267,
                    "nodeType": "ArrayTypeName",
                    "src": "30412:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30411:31:36"
            },
            "returnParameters": {
              "id": 6273,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30501:0:36"
            },
            "scope": 6817,
            "src": "30388:344:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6332,
              "nodeType": "Block",
              "src": "31109:188:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 6320,
                                  "name": "channel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5162,
                                  "src": "31167:7:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes4_$",
                                    "typeString": "function () view returns (bytes4)"
                                  }
                                },
                                "id": 6321,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "31167:9:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes4",
                                  "typeString": "bytes4"
                                }
                              },
                              {
                                "expression": {
                                  "id": 6322,
                                  "name": "block",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967292,
                                  "src": "31191:5:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_block",
                                    "typeString": "block"
                                  }
                                },
                                "id": 6323,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "31197:6:36",
                                "memberName": "number",
                                "nodeType": "MemberAccess",
                                "src": "31191:12:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "expression": {
                                  "id": 6324,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967281,
                                  "src": "31218:3:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 6325,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "31222:6:36",
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "src": "31218:10:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 6326,
                                "name": "_queryRAD",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6308,
                                "src": "31243:9:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "id": 6327,
                                "name": "_querySLA",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6310,
                                "src": "31267:9:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes4",
                                  "typeString": "bytes4"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 6318,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "31142:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 6319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "31146:6:36",
                              "memberName": "encode",
                              "nodeType": "MemberAccess",
                              "src": "31142:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 6328,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "31142:145:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 6317,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967288,
                          "src": "31132:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 6329,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "31132:156:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6316,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "31127:4:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 6315,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "31127:4:36",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 6330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31127:162:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6314,
                  "id": 6331,
                  "nodeType": "Return",
                  "src": "31120:169:36"
                }
              ]
            },
            "id": 6333,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__newQueryId",
            "nameLocation": "30995:12:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6311,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6308,
                  "mutability": "mutable",
                  "name": "_queryRAD",
                  "nameLocation": "31016:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6333,
                  "src": "31008:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6307,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31008:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6310,
                  "mutability": "mutable",
                  "name": "_querySLA",
                  "nameLocation": "31035:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6333,
                  "src": "31027:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6309,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31027:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31007:38:36"
            },
            "returnParameters": {
              "id": 6314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6313,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6333,
                  "src": "31095:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6312,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31095:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31094:9:36"
            },
            "scope": 6817,
            "src": "30986:311:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6409,
              "nodeType": "Block",
              "src": "31478:536:36",
              "statements": [
                {
                  "expression": {
                    "id": 6350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6345,
                      "name": "_witnetQueryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6343,
                      "src": "31489:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "31506:20:36",
                      "subExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 6346,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6783,
                            "src": "31509:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 6347,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31509:11:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                            "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                          }
                        },
                        "id": 6348,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "memberLocation": "31521:5:36",
                        "memberName": "nonce",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12026,
                        "src": "31509:17:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31489:37:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6351,
                  "nodeType": "ExpressionStatement",
                  "src": "31489:37:36"
                },
                {
                  "assignments": [
                    6356
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6356,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "31600:9:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 6409,
                      "src": "31575:34:36",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                        "typeString": "struct WitnetV2.Request"
                      },
                      "typeName": {
                        "id": 6355,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6354,
                          "name": "WitnetV2.Request",
                          "nameLocations": [
                            "31575:8:36",
                            "31584:7:36"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 23476,
                          "src": "31575:16:36"
                        },
                        "referencedDeclaration": 23476,
                        "src": "31575:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6361,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6359,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6343,
                        "src": "31649:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6357,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "31612:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 6358,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31632:16:36",
                      "memberName": "seekQueryRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12092,
                      "src": "31612:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                      }
                    },
                    "id": 6360,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31612:52:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                      "typeString": "struct WitnetV2.Request storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31575:89:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6369,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6363,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6356,
                            "src": "31684:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 6364,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "31694:9:36",
                          "memberName": "requester",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23464,
                          "src": "31684:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 6367,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "31715:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 6366,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "31707:7:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 6365,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "31707:7:36",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31707:10:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "31684:33:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "616c726561647920706f73746564",
                        "id": 6370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31719:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e1633e2d1a040dd6b18bd9a918ff498f20ec505d5bd62ed50c8afb031d7056b1",
                          "typeString": "literal_string \"already posted\""
                        },
                        "value": "already posted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e1633e2d1a040dd6b18bd9a918ff498f20ec505d5bd62ed50c8afb031d7056b1",
                          "typeString": "literal_string \"already posted\""
                        }
                      ],
                      "id": 6362,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3797,
                      "src": "31675:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31675:61:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6372,
                  "nodeType": "ExpressionStatement",
                  "src": "31675:61:36"
                },
                {
                  "id": 6408,
                  "nodeType": "Block",
                  "src": "31747:260:36",
                  "statements": [
                    {
                      "expression": {
                        "id": 6378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "expression": {
                            "id": 6373,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6356,
                            "src": "31762:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 6375,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberLocation": "31772:9:36",
                          "memberName": "requester",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23464,
                          "src": "31762:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "expression": {
                            "id": 6376,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967281,
                            "src": "31784:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 6377,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "31788:6:36",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "31784:10:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "31762:32:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 6379,
                      "nodeType": "ExpressionStatement",
                      "src": "31762:32:36"
                    },
                    {
                      "expression": {
                        "id": 6384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "expression": {
                            "id": 6380,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6356,
                            "src": "31809:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 6382,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberLocation": "31819:11:36",
                          "memberName": "gasCallback",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23466,
                          "src": "31809:21:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "id": 6383,
                          "name": "_callbackGasLimit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6340,
                          "src": "31833:17:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        },
                        "src": "31809:41:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      "id": 6385,
                      "nodeType": "ExpressionStatement",
                      "src": "31809:41:36"
                    },
                    {
                      "expression": {
                        "id": 6394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "expression": {
                            "id": 6386,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6356,
                            "src": "31865:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 6388,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberLocation": "31875:9:36",
                          "memberName": "evmReward",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23468,
                          "src": "31865:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6391,
                                "name": "_getMsgValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24136,
                                "src": "31894:12:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view returns (uint256)"
                                }
                              },
                              "id": 6392,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "31894:14:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6390,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "31887:6:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint72_$",
                              "typeString": "type(uint72)"
                            },
                            "typeName": {
                              "id": 6389,
                              "name": "uint72",
                              "nodeType": "ElementaryTypeName",
                              "src": "31887:6:36",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6393,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31887:22:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        "src": "31865:44:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint72",
                          "typeString": "uint72"
                        }
                      },
                      "id": 6395,
                      "nodeType": "ExpressionStatement",
                      "src": "31865:44:36"
                    },
                    {
                      "expression": {
                        "id": 6400,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "expression": {
                            "id": 6396,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6356,
                            "src": "31924:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 6398,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberLocation": "31934:9:36",
                          "memberName": "witnetRAD",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23472,
                          "src": "31924:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "id": 6399,
                          "name": "_radHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6335,
                          "src": "31946:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "31924:30:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "id": 6401,
                      "nodeType": "ExpressionStatement",
                      "src": "31924:30:36"
                    },
                    {
                      "expression": {
                        "id": 6406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "expression": {
                            "id": 6402,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6356,
                            "src": "31969:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                              "typeString": "struct WitnetV2.Request storage pointer"
                            }
                          },
                          "id": 6404,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberLocation": "31979:9:36",
                          "memberName": "witnetSLA",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23475,
                          "src": "31969:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                            "typeString": "struct WitnetV2.RadonSLA storage ref"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "id": 6405,
                          "name": "_sla",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6338,
                          "src": "31991:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                            "typeString": "struct WitnetV2.RadonSLA calldata"
                          }
                        },
                        "src": "31969:26:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                          "typeString": "struct WitnetV2.RadonSLA storage ref"
                        }
                      },
                      "id": 6407,
                      "nodeType": "ExpressionStatement",
                      "src": "31969:26:36"
                    }
                  ]
                }
              ]
            },
            "id": 6410,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__postRequest",
            "nameLocation": "31314:13:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6335,
                  "mutability": "mutable",
                  "name": "_radHash",
                  "nameLocation": "31336:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6410,
                  "src": "31328:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6334,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31328:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6338,
                  "mutability": "mutable",
                  "name": "_sla",
                  "nameLocation": "31373:4:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6410,
                  "src": "31346:31:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_calldata_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 6337,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6336,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "31346:8:36",
                        "31355:8:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "31346:17:36"
                    },
                    "referencedDeclaration": 23503,
                    "src": "31346:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6340,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "31386:17:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6410,
                  "src": "31379:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 6339,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "31379:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31327:77:36"
            },
            "returnParameters": {
              "id": 6344,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6343,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "31457:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6410,
                  "src": "31449:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6342,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31449:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31448:24:36"
            },
            "scope": 6817,
            "src": "31305:709:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6517,
              "nodeType": "Block",
              "src": "32320:2630:36",
              "statements": [
                {
                  "assignments": [
                    6427
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6427,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "32429:9:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 6517,
                      "src": "32404:34:36",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                        "typeString": "struct WitnetV2.Request"
                      },
                      "typeName": {
                        "id": 6426,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6425,
                          "name": "WitnetV2.Request",
                          "nameLocations": [
                            "32404:8:36",
                            "32413:7:36"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 23476,
                          "src": "32404:16:36"
                        },
                        "referencedDeclaration": 23476,
                        "src": "32404:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6432,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6430,
                        "name": "_witnetQueryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6412,
                        "src": "32478:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6428,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "32441:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 6429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "32461:16:36",
                      "memberName": "seekQueryRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12092,
                      "src": "32441:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                      }
                    },
                    "id": 6431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32441:52:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                      "typeString": "struct WitnetV2.Request storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "32404:89:36"
                },
                {
                  "expression": {
                    "id": 6436,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6433,
                      "name": "_evmReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6421,
                      "src": "32557:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 6434,
                        "name": "__request",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6427,
                        "src": "32570:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request storage pointer"
                        }
                      },
                      "id": 6435,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "32580:9:36",
                      "memberName": "evmReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23468,
                      "src": "32570:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint72",
                        "typeString": "uint72"
                      }
                    },
                    "src": "32557:32:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6437,
                  "nodeType": "ExpressionStatement",
                  "src": "32557:32:36"
                },
                {
                  "expression": {
                    "id": 6442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 6438,
                        "name": "__request",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6427,
                        "src": "32680:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request storage pointer"
                        }
                      },
                      "id": 6440,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "32690:9:36",
                      "memberName": "evmReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23468,
                      "src": "32680:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint72",
                        "typeString": "uint72"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 6441,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "32702:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "32680:23:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint72",
                      "typeString": "uint72"
                    }
                  },
                  "id": 6443,
                  "nodeType": "ExpressionStatement",
                  "src": "32680:23:36"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    },
                    "id": 6447,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 6444,
                        "name": "__request",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6427,
                        "src": "32774:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                          "typeString": "struct WitnetV2.Request storage pointer"
                        }
                      },
                      "id": 6445,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "32784:11:36",
                      "memberName": "gasCallback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23466,
                      "src": "32774:21:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "32798:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "32774:25:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6515,
                    "nodeType": "Block",
                    "src": "34476:467:36",
                    "statements": [
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "id": 6503,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6412,
                              "src": "34577:14:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6504,
                                "name": "_getGasPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24130,
                                "src": "34611:12:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view returns (uint256)"
                                }
                              },
                              "id": 6505,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "34611:14:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6502,
                            "name": "WitnetQueryResponse",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13285,
                            "src": "34539:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 6506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "34539:101:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6507,
                        "nodeType": "EmitStatement",
                        "src": "34534:106:36"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6509,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6412,
                              "src": "34764:14:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 6510,
                              "name": "_witnetQueryResultTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6414,
                              "src": "34797:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "id": 6511,
                              "name": "_witnetQueryResultTallyHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6416,
                              "src": "34843:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 6512,
                              "name": "_witnetQueryResultCborBytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6418,
                              "src": "34889:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            ],
                            "id": 6508,
                            "name": "__writeQueryResponse",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6816,
                            "src": "34725:20:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (uint256,uint32,bytes32,bytes memory)"
                            }
                          },
                          "id": 6513,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "34725:206:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6514,
                        "nodeType": "ExpressionStatement",
                        "src": "34725:206:36"
                      }
                    ]
                  },
                  "id": 6516,
                  "nodeType": "IfStatement",
                  "src": "32770:2173:36",
                  "trueBody": {
                    "id": 6501,
                    "nodeType": "Block",
                    "src": "32801:1669:36",
                    "statements": [
                      {
                        "assignments": [
                          6449,
                          6451,
                          6453
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6449,
                            "mutability": "mutable",
                            "name": "_evmCallbackActualGas",
                            "nameLocation": "32843:21:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 6501,
                            "src": "32835:29:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6448,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "32835:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 6451,
                            "mutability": "mutable",
                            "name": "_evmCallbackSuccess",
                            "nameLocation": "32888:19:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 6501,
                            "src": "32883:24:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 6450,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "32883:4:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 6453,
                            "mutability": "mutable",
                            "name": "_evmCallbackRevertMessage",
                            "nameLocation": "32940:25:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 6501,
                            "src": "32926:39:36",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 6452,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "32926:6:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6464,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 6455,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6412,
                              "src": "33024:14:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 6456,
                              "name": "_witnetQueryResultTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6414,
                              "src": "33057:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "id": 6457,
                              "name": "_witnetQueryResultTallyHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6416,
                              "src": "33103:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 6458,
                              "name": "_witnetQueryResultCborBytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6418,
                              "src": "33149:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            },
                            {
                              "expression": {
                                "id": 6459,
                                "name": "__request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6427,
                                "src": "33195:9:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                  "typeString": "struct WitnetV2.Request storage pointer"
                                }
                              },
                              "id": 6460,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33205:9:36",
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 23464,
                              "src": "33195:19:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 6461,
                                "name": "__request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6427,
                                "src": "33233:9:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                  "typeString": "struct WitnetV2.Request storage pointer"
                                }
                              },
                              "id": 6462,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33243:11:36",
                              "memberName": "gasCallback",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 23466,
                              "src": "33233:21:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint24",
                                "typeString": "uint24"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint24",
                                "typeString": "uint24"
                              }
                            ],
                            "id": 6454,
                            "name": "__reportResultCallback",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6733,
                            "src": "32983:22:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_uint256_$_t_bool_$_t_string_memory_ptr_$",
                              "typeString": "function (uint256,uint64,bytes32,bytes calldata,address,uint256) returns (uint256,bool,string memory)"
                            }
                          },
                          "id": 6463,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "32983:286:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$_t_string_memory_ptr_$",
                            "typeString": "tuple(uint256,bool,string memory)"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "32816:453:36"
                      },
                      {
                        "condition": {
                          "id": 6465,
                          "name": "_evmCallbackSuccess",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6451,
                          "src": "33288:19:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6492,
                          "nodeType": "Block",
                          "src": "33573:496:36",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "id": 6475,
                                    "name": "_witnetQueryId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6412,
                                    "src": "33698:14:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "id": 6476,
                                    "name": "_witnetQueryResultCborBytes",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6418,
                                    "src": "33735:27:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_calldata_ptr",
                                      "typeString": "bytes calldata"
                                    }
                                  },
                                  {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 6477,
                                      "name": "_getGasPrice",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 24130,
                                      "src": "33785:12:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                        "typeString": "function () view returns (uint256)"
                                      }
                                    },
                                    "id": 6478,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "33785:14:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "id": 6479,
                                    "name": "_evmCallbackActualGas",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6449,
                                    "src": "33822:21:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "condition": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 6486,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "arguments": [
                                            {
                                              "id": 6482,
                                              "name": "_evmCallbackRevertMessage",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6453,
                                              "src": "33872:25:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                              }
                                            ],
                                            "id": 6481,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "33866:5:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                              "typeString": "type(bytes storage pointer)"
                                            },
                                            "typeName": {
                                              "id": 6480,
                                              "name": "bytes",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "33866:5:36",
                                              "typeDescriptions": {}
                                            }
                                          },
                                          "id": 6483,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "33866:32:36",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        },
                                        "id": 6484,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "33899:6:36",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "33866:39:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "hexValue": "30",
                                        "id": 6485,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "33908:1:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "33866:43:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "hexValue": "5769746e65744f7261636c653a2063616c6c6261636b20657863656564656420676173206c696d6974",
                                      "id": 6488,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "33991:43:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_14fe78c4043778e9ebf0b164ba641e7718df28070972508ceb6f724d391c8bcf",
                                        "typeString": "literal_string \"WitnetOracle: callback exceeded gas limit\""
                                      },
                                      "value": "WitnetOracle: callback exceeded gas limit"
                                    },
                                    "id": 6489,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "33866:168:36",
                                    "trueExpression": {
                                      "id": 6487,
                                      "name": "_evmCallbackRevertMessage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6453,
                                      "src": "33938:25:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes_calldata_ptr",
                                      "typeString": "bytes calldata"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 6474,
                                  "name": "WitnetQueryResponseDeliveryFailed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13307,
                                  "src": "33642:33:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (uint256,bytes memory,uint256,uint256,string memory)"
                                  }
                                },
                                "id": 6490,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "33642:411:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6491,
                              "nodeType": "EmitStatement",
                              "src": "33637:416:36"
                            }
                          ]
                        },
                        "id": 6493,
                        "nodeType": "IfStatement",
                        "src": "33284:785:36",
                        "trueBody": {
                          "id": 6473,
                          "nodeType": "Block",
                          "src": "33309:258:36",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "id": 6467,
                                    "name": "_witnetQueryId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6412,
                                    "src": "33437:14:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 6468,
                                      "name": "_getGasPrice",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 24130,
                                      "src": "33474:12:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                                        "typeString": "function () view returns (uint256)"
                                      }
                                    },
                                    "id": 6469,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "33474:14:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "id": 6470,
                                    "name": "_evmCallbackActualGas",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6449,
                                    "src": "33511:21:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6466,
                                  "name": "WitnetQueryResponseDelivered",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13294,
                                  "src": "33386:28:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256,uint256,uint256)"
                                  }
                                },
                                "id": 6471,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "33386:165:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6472,
                              "nodeType": "EmitStatement",
                              "src": "33381:170:36"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6495,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6412,
                              "src": "34310:14:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 6496,
                              "name": "_witnetQueryResultTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6414,
                              "src": "34344:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            {
                              "id": 6497,
                              "name": "_witnetQueryResultTallyHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6416,
                              "src": "34391:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "hexValue": "",
                              "id": 6498,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "hexString",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "34438:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              }
                            ],
                            "id": 6494,
                            "name": "__writeQueryResponse",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6816,
                            "src": "34271:20:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (uint256,uint32,bytes32,bytes memory)"
                            }
                          },
                          "id": 6499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "34271:187:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6500,
                        "nodeType": "ExpressionStatement",
                        "src": "34271:187:36"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 6518,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__reportResult",
            "nameLocation": "32031:14:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6419,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6412,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "32068:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6518,
                  "src": "32060:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6411,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "32060:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6414,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTimestamp",
                  "nameLocation": "32105:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6518,
                  "src": "32097:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6413,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32097:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6416,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTallyHash",
                  "nameLocation": "32155:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6518,
                  "src": "32147:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6415,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "32147:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6418,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultCborBytes",
                  "nameLocation": "32212:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6518,
                  "src": "32197:42:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6417,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "32197:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "32045:205:36"
            },
            "returnParameters": {
              "id": 6422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6421,
                  "mutability": "mutable",
                  "name": "_evmReward",
                  "nameLocation": "32303:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6518,
                  "src": "32295:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6420,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "32295:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "32294:20:36"
            },
            "scope": 6817,
            "src": "32022:2928:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6549,
              "nodeType": "Block",
              "src": "35265:352:36",
              "statements": [
                {
                  "expression": {
                    "id": 6538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6531,
                      "name": "_evmReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6529,
                      "src": "35276:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6533,
                          "name": "_witnetQueryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6520,
                          "src": "35318:14:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 6534,
                          "name": "_witnetQueryResultTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6522,
                          "src": "35348:27:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "id": 6535,
                          "name": "_witnetQueryResultTallyHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6524,
                          "src": "35391:27:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 6536,
                          "name": "_witnetQueryResultCborBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6526,
                          "src": "35434:27:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        ],
                        "id": 6532,
                        "name": "__reportResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6518,
                        "src": "35289:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint32,bytes32,bytes calldata) returns (uint256)"
                        }
                      },
                      "id": 6537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "35289:183:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "35276:196:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6539,
                  "nodeType": "ExpressionStatement",
                  "src": "35276:196:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 6543,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "35562:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6544,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "35566:6:36",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "35562:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 6542,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "35554:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_payable_$",
                            "typeString": "type(address payable)"
                          },
                          "typeName": {
                            "id": 6541,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "35554:8:36",
                            "stateMutability": "payable",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "35554:19:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "id": 6546,
                        "name": "_evmReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6529,
                        "src": "35588:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6540,
                      "name": "__safeTransferTo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24144,
                      "src": "35523:16:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
                        "typeString": "function (address payable,uint256)"
                      }
                    },
                    "id": 6547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "35523:86:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6548,
                  "nodeType": "ExpressionStatement",
                  "src": "35523:86:36"
                }
              ]
            },
            "id": 6550,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__reportResultAndReward",
            "nameLocation": "34967:23:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6527,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6520,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "35013:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6550,
                  "src": "35005:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6519,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "35005:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6522,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTimestamp",
                  "nameLocation": "35050:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6550,
                  "src": "35042:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6521,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35042:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6524,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTallyHash",
                  "nameLocation": "35100:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6550,
                  "src": "35092:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6523,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35092:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6526,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultCborBytes",
                  "nameLocation": "35157:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6550,
                  "src": "35142:42:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6525,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "35142:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34990:205:36"
            },
            "returnParameters": {
              "id": 6530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6529,
                  "mutability": "mutable",
                  "name": "_evmReward",
                  "nameLocation": "35248:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6550,
                  "src": "35240:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6528,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "35240:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35239:20:36"
            },
            "scope": 6817,
            "src": "34958:659:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6732,
              "nodeType": "Block",
              "src": "36140:2517:36",
              "statements": [
                {
                  "expression": {
                    "id": 6574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6571,
                      "name": "_evmCallbackActualGas",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6565,
                      "src": "36151:21:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 6572,
                        "name": "gasleft",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967289,
                        "src": "36175:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
                          "typeString": "function () view returns (uint256)"
                        }
                      },
                      "id": 6573,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "36175:9:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "36151:33:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6575,
                  "nodeType": "ExpressionStatement",
                  "src": "36151:33:36"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    },
                    "id": 6583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "id": 6576,
                        "name": "_witnetQueryResultCborBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6558,
                        "src": "36199:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      "id": 6578,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 6577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "36227:1:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "36199:30:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30786438",
                          "id": 6581,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "36240:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_216_by_1",
                            "typeString": "int_const 216"
                          },
                          "value": "0xd8"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_216_by_1",
                            "typeString": "int_const 216"
                          }
                        ],
                        "id": 6580,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "36233:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 6579,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "36233:6:36",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 6582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "36233:12:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "src": "36199:46:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6725,
                    "nodeType": "Block",
                    "src": "38011:594:36",
                    "statements": [
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 6708,
                              "nodeType": "Block",
                              "src": "38411:61:36",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 6706,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "id": 6704,
                                      "name": "_evmCallbackSuccess",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6567,
                                      "src": "38430:19:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "hexValue": "74727565",
                                      "id": 6705,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "bool",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "38452:4:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      },
                                      "value": "true"
                                    },
                                    "src": "38430:26:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "id": 6707,
                                  "nodeType": "ExpressionStatement",
                                  "src": "38430:26:36"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 6709,
                            "nodeType": "TryCatchClause",
                            "src": "38411:61:36"
                          },
                          {
                            "block": {
                              "id": 6717,
                              "nodeType": "Block",
                              "src": "38504:66:36",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 6715,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "id": 6713,
                                      "name": "_evmCallbackRevertMessage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6569,
                                      "src": "38523:25:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "id": 6714,
                                      "name": "err",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6711,
                                      "src": "38551:3:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "src": "38523:31:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 6716,
                                  "nodeType": "ExpressionStatement",
                                  "src": "38523:31:36"
                                }
                              ]
                            },
                            "errorName": "Error",
                            "id": 6718,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 6712,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 6711,
                                  "mutability": "mutable",
                                  "name": "err",
                                  "nameLocation": "38499:3:36",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 6718,
                                  "src": "38485:17:36",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string"
                                  },
                                  "typeName": {
                                    "id": 6710,
                                    "name": "string",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "38485:6:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage_ptr",
                                      "typeString": "string"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "38484:19:36"
                            },
                            "src": "38473:97:36"
                          },
                          {
                            "block": {
                              "id": 6722,
                              "nodeType": "Block",
                              "src": "38592:2:36",
                              "statements": []
                            },
                            "errorName": "",
                            "id": 6723,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 6721,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 6720,
                                  "mutability": "mutable",
                                  "name": "",
                                  "nameLocation": "-1:-1:-1",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 6723,
                                  "src": "38578:12:36",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 6719,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "38578:5:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "38577:14:36"
                            },
                            "src": "38571:23:36"
                          }
                        ],
                        "externalCall": {
                          "arguments": [
                            {
                              "id": 6694,
                              "name": "_witnetQueryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6552,
                              "src": "38190:14:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 6695,
                              "name": "_witnetQueryResultTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6554,
                              "src": "38223:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            {
                              "id": 6696,
                              "name": "_witnetQueryResultTallyHash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6556,
                              "src": "38269:27:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 6697,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967292,
                                "src": "38315:5:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 6698,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "38321:6:36",
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "src": "38315:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "id": 6701,
                                  "name": "_witnetQueryResultCborBytes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6558,
                                  "src": "38367:27:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                ],
                                "expression": {
                                  "id": 6699,
                                  "name": "WitnetCBOR",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20734,
                                  "src": "38346:10:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitnetCBOR_$20734_$",
                                    "typeString": "type(library WitnetCBOR)"
                                  }
                                },
                                "id": 6700,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "38357:9:36",
                                "memberName": "fromBytes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19359,
                                "src": "38346:20:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                                  "typeString": "function (bytes memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                }
                              },
                              "id": 6702,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "38346:49:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              ],
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 6689,
                                    "name": "_evmRequester",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6560,
                                    "src": "38106:13:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6688,
                                  "name": "IWitnetConsumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12829,
                                  "src": "38090:15:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitnetConsumer_$12829_$",
                                    "typeString": "type(contract IWitnetConsumer)"
                                  }
                                },
                                "id": 6690,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "38090:30:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitnetConsumer_$12829",
                                  "typeString": "contract IWitnetConsumer"
                                }
                              },
                              "id": 6691,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "38121:23:36",
                              "memberName": "reportWitnetQueryResult",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12802,
                              "src": "38090:54:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_struct$_CBOR_$19218_memory_ptr_$returns$__$",
                                "typeString": "function (uint256,uint64,bytes32,uint256,struct WitnetCBOR.CBOR memory) external"
                              }
                            },
                            "id": 6693,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "names": [
                              "gas"
                            ],
                            "nodeType": "FunctionCallOptions",
                            "options": [
                              {
                                "id": 6692,
                                "name": "_evmCallbackGasLimit",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6562,
                                "src": "38150:20:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "src": "38090:81:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_struct$_CBOR_$19218_memory_ptr_$returns$__$gas",
                              "typeString": "function (uint256,uint64,bytes32,uint256,struct WitnetCBOR.CBOR memory) external"
                            }
                          },
                          "id": 6703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "38090:320:36",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6724,
                        "nodeType": "TryStatement",
                        "src": "38086:508:36"
                      }
                    ]
                  },
                  "id": 6726,
                  "nodeType": "IfStatement",
                  "src": "36195:2410:36",
                  "trueBody": {
                    "id": 6687,
                    "nodeType": "Block",
                    "src": "36247:1758:36",
                    "statements": [
                      {
                        "assignments": [
                          6589
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6589,
                            "mutability": "mutable",
                            "name": "_errors",
                            "nameLocation": "36287:7:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 6687,
                            "src": "36262:32:36",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 6587,
                                "nodeType": "UserDefinedTypeName",
                                "pathNode": {
                                  "id": 6586,
                                  "name": "WitnetCBOR.CBOR",
                                  "nameLocations": [
                                    "36262:10:36",
                                    "36273:4:36"
                                  ],
                                  "nodeType": "IdentifierPath",
                                  "referencedDeclaration": 19218,
                                  "src": "36262:15:36"
                                },
                                "referencedDeclaration": 19218,
                                "src": "36262:15:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR"
                                }
                              },
                              "id": 6588,
                              "nodeType": "ArrayTypeName",
                              "src": "36262:17:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                                "typeString": "struct WitnetCBOR.CBOR[]"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6596,
                        "initialValue": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "arguments": [
                                {
                                  "id": 6592,
                                  "name": "_witnetQueryResultCborBytes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6558,
                                  "src": "36318:27:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                ],
                                "expression": {
                                  "id": 6590,
                                  "name": "WitnetCBOR",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20734,
                                  "src": "36297:10:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitnetCBOR_$20734_$",
                                    "typeString": "type(library WitnetCBOR)"
                                  }
                                },
                                "id": 6591,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "36308:9:36",
                                "memberName": "fromBytes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19359,
                                "src": "36297:20:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                                  "typeString": "function (bytes memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                }
                              },
                              "id": 6593,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "36297:49:36",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 6594,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "36347:9:36",
                            "memberName": "readArray",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19800,
                            "src": "36297:59:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                              "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                            }
                          },
                          "id": 6595,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "36297:61:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "36262:96:36"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 6597,
                              "name": "_errors",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6589,
                              "src": "36377:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                              }
                            },
                            "id": 6598,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "36385:6:36",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "36377:14:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "hexValue": "32",
                            "id": 6599,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "36394:1:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          "src": "36377:18:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6685,
                          "nodeType": "Block",
                          "src": "37344:650:36",
                          "statements": [
                            {
                              "clauses": [
                                {
                                  "block": {
                                    "id": 6673,
                                    "nodeType": "Block",
                                    "src": "37803:69:36",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 6671,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "id": 6669,
                                            "name": "_evmCallbackSuccess",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6567,
                                            "src": "37826:19:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": "=",
                                          "rightHandSide": {
                                            "hexValue": "74727565",
                                            "id": 6670,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "37848:4:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            },
                                            "value": "true"
                                          },
                                          "src": "37826:26:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        },
                                        "id": 6672,
                                        "nodeType": "ExpressionStatement",
                                        "src": "37826:26:36"
                                      }
                                    ]
                                  },
                                  "errorName": "",
                                  "id": 6674,
                                  "nodeType": "TryCatchClause",
                                  "src": "37803:69:36"
                                },
                                {
                                  "block": {
                                    "id": 6682,
                                    "nodeType": "Block",
                                    "src": "37904:75:36",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 6680,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "id": 6678,
                                            "name": "_evmCallbackRevertMessage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6569,
                                            "src": "37927:25:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": "=",
                                          "rightHandSide": {
                                            "id": 6679,
                                            "name": "err",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6676,
                                            "src": "37955:3:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          },
                                          "src": "37927:31:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "id": 6681,
                                        "nodeType": "ExpressionStatement",
                                        "src": "37927:31:36"
                                      }
                                    ]
                                  },
                                  "errorName": "Error",
                                  "id": 6683,
                                  "nodeType": "TryCatchClause",
                                  "parameters": {
                                    "id": 6677,
                                    "nodeType": "ParameterList",
                                    "parameters": [
                                      {
                                        "constant": false,
                                        "id": 6676,
                                        "mutability": "mutable",
                                        "name": "err",
                                        "nameLocation": "37899:3:36",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 6683,
                                        "src": "37885:17:36",
                                        "stateVariable": false,
                                        "storageLocation": "memory",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string"
                                        },
                                        "typeName": {
                                          "id": 6675,
                                          "name": "string",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "37885:6:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                          }
                                        },
                                        "visibility": "internal"
                                      }
                                    ],
                                    "src": "37884:19:36"
                                  },
                                  "src": "37873:106:36"
                                }
                              ],
                              "externalCall": {
                                "arguments": [
                                  {
                                    "id": 6652,
                                    "name": "_witnetQueryId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6552,
                                    "src": "37532:14:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "id": 6653,
                                    "name": "_witnetQueryResultTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6554,
                                    "src": "37569:27:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  {
                                    "id": 6654,
                                    "name": "_witnetQueryResultTallyHash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6556,
                                    "src": "37619:27:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 6655,
                                      "name": "block",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967292,
                                      "src": "37669:5:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_block",
                                        "typeString": "block"
                                      }
                                    },
                                    "id": 6656,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "37675:6:36",
                                    "memberName": "number",
                                    "nodeType": "MemberAccess",
                                    "src": "37669:12:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "baseExpression": {
                                              "id": 6659,
                                              "name": "_errors",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6589,
                                              "src": "37728:7:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                                "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                              }
                                            },
                                            "id": 6661,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 6660,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "37736:1:36",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "37728:10:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 6662,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "37739:8:36",
                                          "memberName": "readUint",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 20603,
                                          "src": "37728:19:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint256)"
                                          }
                                        },
                                        "id": 6663,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "37728:21:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "id": 6657,
                                        "name": "Witnet",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17557,
                                        "src": "37704:6:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                          "typeString": "type(library Witnet)"
                                        }
                                      },
                                      "id": 6658,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "37711:16:36",
                                      "memberName": "ResultErrorCodes",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 16311,
                                      "src": "37704:23:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                        "typeString": "type(enum Witnet.ResultErrorCodes)"
                                      }
                                    },
                                    "id": 6664,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "37704:46:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                      "typeString": "enum Witnet.ResultErrorCodes"
                                    }
                                  },
                                  {
                                    "baseExpression": {
                                      "id": 6665,
                                      "name": "_errors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6589,
                                      "src": "37773:7:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    },
                                    "id": 6667,
                                    "indexExpression": {
                                      "hexValue": "30",
                                      "id": 6666,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "37781:1:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "37773:10:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                      "typeString": "enum Witnet.ResultErrorCodes"
                                    },
                                    {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      },
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                        "typeString": "enum Witnet.ResultErrorCodes"
                                      },
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "expression": {
                                      "arguments": [
                                        {
                                          "id": 6647,
                                          "name": "_evmRequester",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6560,
                                          "src": "37445:13:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        ],
                                        "id": 6646,
                                        "name": "IWitnetConsumer",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12829,
                                        "src": "37429:15:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_IWitnetConsumer_$12829_$",
                                          "typeString": "type(contract IWitnetConsumer)"
                                        }
                                      },
                                      "id": 6648,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "37429:30:36",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IWitnetConsumer_$12829",
                                        "typeString": "contract IWitnetConsumer"
                                      }
                                    },
                                    "id": 6649,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "37460:22:36",
                                    "memberName": "reportWitnetQueryError",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 12820,
                                    "src": "37429:53:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_enum$_ResultErrorCodes_$16311_$_t_struct$_CBOR_$19218_memory_ptr_$returns$__$",
                                      "typeString": "function (uint256,uint64,bytes32,uint256,enum Witnet.ResultErrorCodes,struct WitnetCBOR.CBOR memory) external"
                                    }
                                  },
                                  "id": 6651,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "names": [
                                    "gas"
                                  ],
                                  "nodeType": "FunctionCallOptions",
                                  "options": [
                                    {
                                      "id": 6650,
                                      "name": "_evmCallbackGasLimit",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6562,
                                      "src": "37488:20:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "src": "37429:80:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_enum$_ResultErrorCodes_$16311_$_t_struct$_CBOR_$19218_memory_ptr_$returns$__$gas",
                                    "typeString": "function (uint256,uint64,bytes32,uint256,enum Witnet.ResultErrorCodes,struct WitnetCBOR.CBOR memory) external"
                                  }
                                },
                                "id": 6668,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "37429:373:36",
                                "tryCall": true,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6684,
                              "nodeType": "TryStatement",
                              "src": "37425:554:36"
                            }
                          ]
                        },
                        "id": 6686,
                        "nodeType": "IfStatement",
                        "src": "36373:1621:36",
                        "trueBody": {
                          "id": 6645,
                          "nodeType": "Block",
                          "src": "36397:941:36",
                          "statements": [
                            {
                              "clauses": [
                                {
                                  "block": {
                                    "id": 6633,
                                    "nodeType": "Block",
                                    "src": "37148:69:36",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 6631,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "id": 6629,
                                            "name": "_evmCallbackSuccess",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6567,
                                            "src": "37171:19:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": "=",
                                          "rightHandSide": {
                                            "hexValue": "74727565",
                                            "id": 6630,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "37193:4:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            },
                                            "value": "true"
                                          },
                                          "src": "37171:26:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        },
                                        "id": 6632,
                                        "nodeType": "ExpressionStatement",
                                        "src": "37171:26:36"
                                      }
                                    ]
                                  },
                                  "errorName": "",
                                  "id": 6634,
                                  "nodeType": "TryCatchClause",
                                  "src": "37148:69:36"
                                },
                                {
                                  "block": {
                                    "id": 6642,
                                    "nodeType": "Block",
                                    "src": "37249:74:36",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 6640,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "id": 6638,
                                            "name": "_evmCallbackRevertMessage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6569,
                                            "src": "37272:25:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": "=",
                                          "rightHandSide": {
                                            "id": 6639,
                                            "name": "err",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6636,
                                            "src": "37300:3:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          },
                                          "src": "37272:31:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "id": 6641,
                                        "nodeType": "ExpressionStatement",
                                        "src": "37272:31:36"
                                      }
                                    ]
                                  },
                                  "errorName": "Error",
                                  "id": 6643,
                                  "nodeType": "TryCatchClause",
                                  "parameters": {
                                    "id": 6637,
                                    "nodeType": "ParameterList",
                                    "parameters": [
                                      {
                                        "constant": false,
                                        "id": 6636,
                                        "mutability": "mutable",
                                        "name": "err",
                                        "nameLocation": "37244:3:36",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 6643,
                                        "src": "37230:17:36",
                                        "stateVariable": false,
                                        "storageLocation": "memory",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string"
                                        },
                                        "typeName": {
                                          "id": 6635,
                                          "name": "string",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "37230:6:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                          }
                                        },
                                        "visibility": "internal"
                                      }
                                    ],
                                    "src": "37229:19:36"
                                  },
                                  "src": "37218:105:36"
                                }
                              ],
                              "externalCall": {
                                "arguments": [
                                  {
                                    "id": 6607,
                                    "name": "_witnetQueryId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6552,
                                    "src": "36584:14:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "id": 6608,
                                    "name": "_witnetQueryResultTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6554,
                                    "src": "36621:27:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  {
                                    "id": 6609,
                                    "name": "_witnetQueryResultTallyHash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6556,
                                    "src": "36671:27:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 6610,
                                      "name": "block",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967292,
                                      "src": "36721:5:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_block",
                                        "typeString": "block"
                                      }
                                    },
                                    "id": 6611,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "36727:6:36",
                                    "memberName": "number",
                                    "nodeType": "MemberAccess",
                                    "src": "36721:12:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "expression": {
                                        "id": 6612,
                                        "name": "Witnet",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17557,
                                        "src": "36756:6:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                          "typeString": "type(library Witnet)"
                                        }
                                      },
                                      "id": 6613,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "36763:16:36",
                                      "memberName": "ResultErrorCodes",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 16311,
                                      "src": "36756:23:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                        "typeString": "type(enum Witnet.ResultErrorCodes)"
                                      }
                                    },
                                    "id": 6614,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "36780:7:36",
                                    "memberName": "Unknown",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 16056,
                                    "src": "36756:31:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                      "typeString": "enum Witnet.ResultErrorCodes"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "",
                                            "id": 6619,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "hexString",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "36889:5:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                              "typeString": "literal_string \"\""
                                            },
                                            "value": ""
                                          },
                                          {
                                            "hexValue": "30",
                                            "id": 6620,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "36904:1:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                              "typeString": "literal_string \"\""
                                            },
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "expression": {
                                            "id": 6617,
                                            "name": "WitnetBuffer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 19191,
                                            "src": "36861:12:36",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_contract$_WitnetBuffer_$19191_$",
                                              "typeString": "type(library WitnetBuffer)"
                                            }
                                          },
                                          "id": 6618,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "36874:6:36",
                                          "memberName": "Buffer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 17580,
                                          "src": "36861:19:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_struct$_Buffer_$17580_storage_ptr_$",
                                            "typeString": "type(struct WitnetBuffer.Buffer storage pointer)"
                                          }
                                        },
                                        "id": 6621,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "nameLocations": [
                                          "36883:4:36",
                                          "36896:6:36"
                                        ],
                                        "names": [
                                          "data",
                                          "cursor"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "36861:46:36",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                          "typeString": "struct WitnetBuffer.Buffer memory"
                                        }
                                      },
                                      {
                                        "hexValue": "30",
                                        "id": 6622,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "36947:1:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      {
                                        "hexValue": "30",
                                        "id": 6623,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "36986:1:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      {
                                        "hexValue": "30",
                                        "id": 6624,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "37037:1:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      {
                                        "hexValue": "30",
                                        "id": 6625,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "37070:1:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      {
                                        "hexValue": "30",
                                        "id": 6626,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "37103:1:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                          "typeString": "struct WitnetBuffer.Buffer memory"
                                        },
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "expression": {
                                        "id": 6615,
                                        "name": "WitnetCBOR",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20734,
                                        "src": "36810:10:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_WitnetCBOR_$20734_$",
                                          "typeString": "type(library WitnetCBOR)"
                                        }
                                      },
                                      "id": 6616,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "36821:4:36",
                                      "memberName": "CBOR",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 19218,
                                      "src": "36810:15:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_struct$_CBOR_$19218_storage_ptr_$",
                                        "typeString": "type(struct WitnetCBOR.CBOR storage pointer)"
                                      }
                                    },
                                    "id": 6627,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "structConstructorCall",
                                    "lValueRequested": false,
                                    "nameLocations": [
                                      "36853:6:36",
                                      "36934:11:36",
                                      "36975:9:36",
                                      "37014:21:36",
                                      "37065:3:36",
                                      "37098:3:36"
                                    ],
                                    "names": [
                                      "buffer",
                                      "initialByte",
                                      "majorType",
                                      "additionalInformation",
                                      "len",
                                      "tag"
                                    ],
                                    "nodeType": "FunctionCall",
                                    "src": "36810:318:36",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                      "typeString": "enum Witnet.ResultErrorCodes"
                                    },
                                    {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      },
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                        "typeString": "enum Witnet.ResultErrorCodes"
                                      },
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "expression": {
                                      "arguments": [
                                        {
                                          "id": 6602,
                                          "name": "_evmRequester",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6560,
                                          "src": "36497:13:36",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        ],
                                        "id": 6601,
                                        "name": "IWitnetConsumer",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12829,
                                        "src": "36481:15:36",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_IWitnetConsumer_$12829_$",
                                          "typeString": "type(contract IWitnetConsumer)"
                                        }
                                      },
                                      "id": 6603,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "36481:30:36",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IWitnetConsumer_$12829",
                                        "typeString": "contract IWitnetConsumer"
                                      }
                                    },
                                    "id": 6604,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "36512:22:36",
                                    "memberName": "reportWitnetQueryError",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 12820,
                                    "src": "36481:53:36",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_enum$_ResultErrorCodes_$16311_$_t_struct$_CBOR_$19218_memory_ptr_$returns$__$",
                                      "typeString": "function (uint256,uint64,bytes32,uint256,enum Witnet.ResultErrorCodes,struct WitnetCBOR.CBOR memory) external"
                                    }
                                  },
                                  "id": 6606,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "names": [
                                    "gas"
                                  ],
                                  "nodeType": "FunctionCallOptions",
                                  "options": [
                                    {
                                      "id": 6605,
                                      "name": "_evmCallbackGasLimit",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6562,
                                      "src": "36540:20:36",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "src": "36481:80:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_enum$_ResultErrorCodes_$16311_$_t_struct$_CBOR_$19218_memory_ptr_$returns$__$gas",
                                    "typeString": "function (uint256,uint64,bytes32,uint256,enum Witnet.ResultErrorCodes,struct WitnetCBOR.CBOR memory) external"
                                  }
                                },
                                "id": 6628,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "36481:666:36",
                                "tryCall": true,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6644,
                              "nodeType": "TryStatement",
                              "src": "36477:846:36"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 6730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6727,
                      "name": "_evmCallbackActualGas",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6565,
                      "src": "38615:21:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 6728,
                        "name": "gasleft",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967289,
                        "src": "38640:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
                          "typeString": "function () view returns (uint256)"
                        }
                      },
                      "id": 6729,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "38640:9:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "38615:34:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6731,
                  "nodeType": "ExpressionStatement",
                  "src": "38615:34:36"
                }
              ]
            },
            "id": 6733,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__reportResultCallback",
            "nameLocation": "35634:22:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6563,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6552,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "35679:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35671:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6551,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "35671:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6554,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTimestamp",
                  "nameLocation": "35716:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35708:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 6553,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "35708:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6556,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTallyHash",
                  "nameLocation": "35766:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35758:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6555,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "35758:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6558,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultCborBytes",
                  "nameLocation": "35823:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35808:42:36",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6557,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "35808:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6560,
                  "mutability": "mutable",
                  "name": "_evmRequester",
                  "nameLocation": "35873:13:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35865:21:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6559,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "35865:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6562,
                  "mutability": "mutable",
                  "name": "_evmCallbackGasLimit",
                  "nameLocation": "35909:20:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35901:28:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6561,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "35901:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35656:284:36"
            },
            "returnParameters": {
              "id": 6570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6565,
                  "mutability": "mutable",
                  "name": "_evmCallbackActualGas",
                  "nameLocation": "36007:21:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "35999:29:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6564,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "35999:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6567,
                  "mutability": "mutable",
                  "name": "_evmCallbackSuccess",
                  "nameLocation": "36049:19:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "36044:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6566,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "36044:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6569,
                  "mutability": "mutable",
                  "name": "_evmCallbackRevertMessage",
                  "nameLocation": "36098:25:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6733,
                  "src": "36084:39:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6568,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "36084:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35984:150:36"
            },
            "scope": 6817,
            "src": "35625:3032:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6770,
              "nodeType": "Block",
              "src": "38749:222:36",
              "statements": [
                {
                  "body": {
                    "id": 6764,
                    "nodeType": "Block",
                    "src": "38809:115:36",
                    "statements": [
                      {
                        "assignments": [
                          6751
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6751,
                            "mutability": "mutable",
                            "name": "_reporter",
                            "nameLocation": "38832:9:36",
                            "nodeType": "VariableDeclaration",
                            "scope": 6764,
                            "src": "38824:17:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 6750,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "38824:7:36",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6755,
                        "initialValue": {
                          "baseExpression": {
                            "id": 6752,
                            "name": "_reporters",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6736,
                            "src": "38844:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "id": 6754,
                          "indexExpression": {
                            "id": 6753,
                            "name": "ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6740,
                            "src": "38855:2:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "38844:14:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "38824:34:36"
                      },
                      {
                        "expression": {
                          "id": 6762,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 6756,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6783,
                                  "src": "38873:9:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                                  }
                                },
                                "id": 6757,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "38873:11:36",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                                  "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                                }
                              },
                              "id": 6758,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "38885:9:36",
                              "memberName": "reporters",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12035,
                              "src": "38873:21:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                                "typeString": "mapping(address => bool)"
                              }
                            },
                            "id": 6760,
                            "indexExpression": {
                              "id": 6759,
                              "name": "_reporter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6751,
                              "src": "38895:9:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "38873:32:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 6761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "38908:4:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "38873:39:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6763,
                        "nodeType": "ExpressionStatement",
                        "src": "38873:39:36"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6743,
                      "name": "ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6740,
                      "src": "38778:2:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 6744,
                        "name": "_reporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6736,
                        "src": "38783:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 6745,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "38794:6:36",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "38783:17:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "38778:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6765,
                  "initializationExpression": {
                    "assignments": [
                      6740
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6740,
                        "mutability": "mutable",
                        "name": "ix",
                        "nameLocation": "38770:2:36",
                        "nodeType": "VariableDeclaration",
                        "scope": 6765,
                        "src": "38765:7:36",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6739,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "38765:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6742,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 6741,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "38775:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "38765:11:36"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 6748,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "38802:5:36",
                      "subExpression": {
                        "id": 6747,
                        "name": "ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6740,
                        "src": "38802:2:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6749,
                    "nodeType": "ExpressionStatement",
                    "src": "38802:5:36"
                  },
                  "nodeType": "ForStatement",
                  "src": "38760:164:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6767,
                        "name": "_reporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6736,
                        "src": "38952:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "id": 6766,
                      "name": "ReportersSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13730,
                      "src": "38939:12:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 6768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "38939:24:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6769,
                  "nodeType": "EmitStatement",
                  "src": "38934:29:36"
                }
              ]
            },
            "id": 6771,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__setReporters",
            "nameLocation": "38674:14:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6737,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6736,
                  "mutability": "mutable",
                  "name": "_reporters",
                  "nameLocation": "38706:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6771,
                  "src": "38689:27:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6734,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "38689:7:36",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6735,
                    "nodeType": "ArrayTypeName",
                    "src": "38689:9:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38688:29:36"
            },
            "returnParameters": {
              "id": 6738,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "38749:0:36"
            },
            "scope": 6817,
            "src": "38665:306:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6782,
              "nodeType": "Block",
              "src": "39148:50:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 6778,
                        "name": "WitnetOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12396,
                        "src": "39164:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                          "typeString": "type(library WitnetOracleDataLib)"
                        }
                      },
                      "id": 6779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "39184:4:36",
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12045,
                      "src": "39164:24:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$12036_storage_ptr_$",
                        "typeString": "function () pure returns (struct WitnetOracleDataLib.Storage storage pointer)"
                      }
                    },
                    "id": 6780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "39164:26:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                      "typeString": "struct WitnetOracleDataLib.Storage storage pointer"
                    }
                  },
                  "functionReturnParameters": 6777,
                  "id": 6781,
                  "nodeType": "Return",
                  "src": "39157:33:36"
                }
              ]
            },
            "documentation": {
              "id": 6772,
              "nodeType": "StructuredDocumentation",
              "src": "38979:69:36",
              "text": "Returns storage pointer to contents of 'WitnetBoardState' struct."
            },
            "id": 6783,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__storage",
            "nameLocation": "39063:9:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6773,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "39072:2:36"
            },
            "returnParameters": {
              "id": 6777,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6776,
                  "mutability": "mutable",
                  "name": "_ptr",
                  "nameLocation": "39142:4:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6783,
                  "src": "39106:40:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                    "typeString": "struct WitnetOracleDataLib.Storage"
                  },
                  "typeName": {
                    "id": 6775,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6774,
                      "name": "WitnetOracleDataLib.Storage",
                      "nameLocations": [
                        "39106:19:36",
                        "39126:7:36"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 12036,
                      "src": "39106:27:36"
                    },
                    "referencedDeclaration": 12036,
                    "src": "39106:27:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$12036_storage_ptr",
                      "typeString": "struct WitnetOracleDataLib.Storage"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39105:42:36"
            },
            "scope": 6817,
            "src": "39054:144:36",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6815,
              "nodeType": "Block",
              "src": "39473:363:36",
              "statements": [
                {
                  "expression": {
                    "id": 6813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [
                          {
                            "id": 6797,
                            "name": "_witnetQueryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6785,
                            "src": "39514:14:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 6794,
                            "name": "WitnetOracleDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12396,
                            "src": "39484:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                              "typeString": "type(library WitnetOracleDataLib)"
                            }
                          },
                          "id": 6796,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "39504:9:36",
                          "memberName": "seekQuery",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12075,
                          "src": "39484:29:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Query_$23455_storage_ptr_$",
                            "typeString": "function (uint256) view returns (struct WitnetV2.Query storage pointer)"
                          }
                        },
                        "id": 6798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "39484:45:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$23455_storage_ptr",
                          "typeString": "struct WitnetV2.Query storage pointer"
                        }
                      },
                      "id": 6799,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "39530:8:36",
                      "memberName": "response",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23454,
                      "src": "39484:54:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$23488_storage",
                        "typeString": "struct WitnetV2.Response storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 6802,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967281,
                            "src": "39584:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 6803,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "39588:6:36",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "39584:10:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 6806,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967292,
                                "src": "39626:5:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 6807,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "39632:6:36",
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "src": "39626:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6805,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "39619:6:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint64_$",
                              "typeString": "type(uint64)"
                            },
                            "typeName": {
                              "id": 6804,
                              "name": "uint64",
                              "nodeType": "ElementaryTypeName",
                              "src": "39619:6:36",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6808,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "39619:20:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        {
                          "id": 6809,
                          "name": "_witnetQueryResultTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6787,
                          "src": "39671:27:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "id": 6810,
                          "name": "_witnetQueryResultTallyHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6789,
                          "src": "39730:27:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 6811,
                          "name": "_witnetQueryResultCborBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6791,
                          "src": "39789:27:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "expression": {
                          "id": 6800,
                          "name": "WitnetV2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23640,
                          "src": "39541:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                            "typeString": "type(library WitnetV2)"
                          }
                        },
                        "id": 6801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "39550:8:36",
                        "memberName": "Response",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23488,
                        "src": "39541:17:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Response_$23488_storage_ptr_$",
                          "typeString": "type(struct WitnetV2.Response storage pointer)"
                        }
                      },
                      "id": 6812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "39574:8:36",
                        "39609:8:36",
                        "39654:15:36",
                        "39713:15:36",
                        "39772:15:36"
                      ],
                      "names": [
                        "reporter",
                        "finality",
                        "resultTimestamp",
                        "resultTallyHash",
                        "resultCborBytes"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "39541:287:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$23488_memory_ptr",
                        "typeString": "struct WitnetV2.Response memory"
                      }
                    },
                    "src": "39484:344:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$23488_storage",
                      "typeString": "struct WitnetV2.Response storage ref"
                    }
                  },
                  "id": 6814,
                  "nodeType": "ExpressionStatement",
                  "src": "39484:344:36"
                }
              ]
            },
            "id": 6816,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__writeQueryResponse",
            "nameLocation": "39215:20:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6792,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6785,
                  "mutability": "mutable",
                  "name": "_witnetQueryId",
                  "nameLocation": "39258:14:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6816,
                  "src": "39250:22:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6784,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "39250:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6787,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTimestamp",
                  "nameLocation": "39296:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6816,
                  "src": "39288:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 6786,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "39288:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6789,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultTallyHash",
                  "nameLocation": "39347:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6816,
                  "src": "39339:35:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6788,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "39339:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6791,
                  "mutability": "mutable",
                  "name": "_witnetQueryResultCborBytes",
                  "nameLocation": "39403:27:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 6816,
                  "src": "39390:40:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6790,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "39390:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "39235:206:36"
            },
            "returnParameters": {
              "id": 6793,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "39473:0:36"
            },
            "scope": 6817,
            "src": "39206:630:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 6818,
        "src": "902:38939:36",
        "usedErrors": [
          16,
          19,
          267,
          272,
          523,
          17562,
          17568,
          19262,
          19268,
          19276
        ],
        "usedEvents": [
          24,
          278,
          13278,
          13285,
          13294,
          13307,
          13314,
          13397,
          13730,
          13735,
          24023,
          24106,
          24112,
          24232
        ]
      }
    ],
    "src": "35:39806:36"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.25+commit.b61c2a91.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2024-12-05T09:36:04.353Z",
  "devdoc": {
    "author": "The Witnet Foundation",
    "details": "This contract enables posting requests that Witnet bridges will insert into the Witnet network. The result of the requests will be posted back to this contract by the bridge nodes too.",
    "errors": {
      "InvalidInitialization()": [
        {
          "details": "The contract is already initialized."
        }
      ],
      "NotInitializing()": [
        {
          "details": "The contract is not initializing."
        }
      ],
      "OwnableInvalidOwner(address)": [
        {
          "details": "The owner is not a valid owner account. (eg. `address(0)`)"
        }
      ],
      "OwnableUnauthorizedAccount(address)": [
        {
          "details": "The caller account is not authorized to perform an operation."
        }
      ],
      "ReentrancyGuardReentrantCall()": [
        {
          "details": "Unauthorized reentrant call."
        }
      ]
    },
    "events": {
      "Initialized(uint64)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "Upgraded(address,address,bytes32,string)": {
        "params": {
          "baseAddr": "The address of the new implementation contract.",
          "baseCodehash": "The EVM-codehash of the new implementation contract.",
          "from": "The address who ordered the upgrading. Namely, the WRB operator in \"trustable\" implementations.",
          "versionTag": "Ascii-encoded version literal with which the implementation deployer decided to tag it."
        }
      }
    },
    "kind": "dev",
    "methods": {
      "acceptOwnership()": {
        "details": "The new owner accepts the ownership transfer."
      },
      "base()": {
        "details": "Retrieves base contract. Differs from address(this) when called via delegate-proxy pattern."
      },
      "codehash()": {
        "details": "Retrieves the immutable codehash of this contract, even if invoked as delegatecall."
      },
      "estimateBaseFee(uint256,bytes32)": {
        "details": "Underestimates if the size of returned data is greater than `resultMaxSize`. ",
        "params": {
          "gasPrice": "Expected gas price to pay upon posting the data request.",
          "radHash": "The hash of some Witnet Data Request previously posted in the WitnetRequestBytecodes registry."
        }
      },
      "estimateBaseFee(uint256,uint16)": {
        "details": "Underestimates if the size of returned data is greater than `_resultMaxSize`. ",
        "params": {
          "_gasPrice": "Expected gas price to pay upon posting the data request.",
          "_resultMaxSize": "Maximum expected size of returned data (in bytes)."
        }
      },
      "estimateBaseFeeWithCallback(uint256,uint24)": {
        "params": {
          "_callbackGasLimit": "Maximum gas to be spent when reporting the data request result.",
          "_gasPrice": "Expected gas price to pay upon posting the data request."
        }
      },
      "extractWitnetDataRequests(uint256[])": {
        "details": "Returns empty buffer if the query does not exist.",
        "params": {
          "_queryIds": "Query identifies."
        }
      },
      "fetchQueryResponse(uint256)": {
        "details": "Fails if the `_witnetQueryId` is not in 'Reported' status, or called from an address different tothe one that actually posted the given request.",
        "params": {
          "_witnetQueryId": "The unique query identifier."
        }
      },
      "getQueryRequest(uint256)": {
        "params": {
          "_witnetQueryId": "The unique query identifier."
        }
      },
      "getQueryResponse(uint256)": {
        "details": "Fails if the `_witnetQueryId` is not in 'Reported' status.",
        "params": {
          "_witnetQueryId": "The unique query identifier"
        }
      },
      "getQueryResponseStatus(uint256)": {
        "params": {
          "_witnetQueryId": "The unique query identifier."
        }
      },
      "getQueryResultCborBytes(uint256)": {
        "params": {
          "_witnetQueryId": "The unique query identifier."
        }
      },
      "getQueryResultError(uint256)": {
        "params": {
          "_witnetQueryId": "The unique query identifier."
        }
      },
      "initialize(bytes)": {
        "details": "Must fail when trying to upgrade to same logic contract more than once."
      },
      "isReporter(address)": {
        "params": {
          "_reporter": "The address to be checked."
        }
      },
      "isUpgradable()": {
        "details": "Determines whether the logic of this contract is potentially upgradable."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "pendingOwner()": {
        "details": "Returns the address of the pending owner."
      },
      "postRequest(bytes32,(uint8,uint64))": {
        "details": "Reasons to fail:- the RAD hash was not previously verified by the WitnetRequestBytecodes registry;- invalid SLA parameters were provided;- insufficient value is paid as reward.",
        "params": {
          "_queryRAD": "The RAD hash of the data request to be solved by Witnet.",
          "_querySLA": "The data query SLA to be fulfilled on the Witnet blockchain."
        },
        "returns": {
          "_witnetQueryId": "Unique query identifier."
        }
      },
      "postRequestWithCallback(bytes,(uint8,uint64),uint24)": {
        "details": "Reasons to fail:- the caller is not a contract implementing the IWitnetConsumer interface;- the provided bytecode is empty;- invalid SLA parameters were provided;- zero callback gas limit is provided;- insufficient value is paid as reward.",
        "params": {
          "_queryCallbackGasLimit": "Maximum gas to be spent when reporting the data request result.",
          "_querySLA": "The data query SLA to be fulfilled on the Witnet blockchain.",
          "_queryUnverifiedBytecode": "The (unverified) bytecode containing the actual data request to be solved by the Witnet blockchain."
        },
        "returns": {
          "_witnetQueryId": "Unique query identifier."
        }
      },
      "postRequestWithCallback(bytes32,(uint8,uint64),uint24)": {
        "details": "Reasons to fail:- the caller is not a contract implementing the IWitnetConsumer interface;- the RAD hash was not previously verified by the WitnetRequestBytecodes registry;- invalid SLA parameters were provided;- zero callback gas limit is provided;- insufficient value is paid as reward.",
        "params": {
          "_queryCallbackGasLimit": "Maximum gas to be spent when reporting the data request result.",
          "_queryRAD": "The RAD hash of the data request to be solved by Witnet.",
          "_querySLA": "The data query SLA to be fulfilled on the Witnet blockchain."
        },
        "returns": {
          "_witnetQueryId": "Unique query identifier."
        }
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
      },
      "reportResult(uint256,bytes32,bytes)": {
        "details": "Will assume `block.timestamp` as the timestamp at which the request was solved.Fails if:- the `_witnetQueryId` is not in 'Posted' status.- provided `_witnetQueryResultTallyHash` is zero;- length of provided `_result` is zero.",
        "params": {
          "_witnetQueryId": "The unique identifier of the data request.",
          "_witnetQueryResultCborBytes": "The result itself as bytes.",
          "_witnetQueryResultTallyHash": "Hash of the commit/reveal witnessing act that took place in the Witnet blockahin."
        }
      },
      "reportResult(uint256,uint32,bytes32,bytes)": {
        "details": "Fails if:- called from unauthorized address;- the `_witnetQueryId` is not in 'Posted' status.- provided `_witnetQueryResultTallyHash` is zero;- length of provided `_witnetQueryResultCborBytes` is zero.",
        "params": {
          "_witnetQueryId": "The unique query identifier",
          "_witnetQueryResultCborBytes": "The result itself as bytes.",
          "_witnetQueryResultTallyHash": "Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.",
          "_witnetQueryResultTimestamp": "Timestamp at which the reported value was captured by the Witnet blockchain. "
        }
      },
      "reportResultBatch((uint256,uint32,bytes32,bytes)[])": {
        "details": "Fails only if called from unauthorized address.",
        "params": {
          "_batchResults": "Array of BatchResult structs, every one containing:         - unique query identifier;         - timestamp of the solving tally txs in Witnet. If zero is provided, EVM-timestamp will be used instead;         - hash of the corresponding data request tx at the Witnet side-chain level;         - data request result in raw bytes."
        }
      },
      "setReporters(address[])": {
        "details": "Can only be called from the owner address.Emits the `ReportersSet` event. ",
        "params": {
          "_reporters": "List of addresses to be added to the active reporters control list."
        }
      },
      "transferOwnership(address)": {
        "details": "Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."
      },
      "unsetReporters(address[])": {
        "details": "Can only be called from the owner address.Emits the `ReportersUnset` event. ",
        "params": {
          "_exReporters": "List of addresses to be added to the active reporters control list."
        }
      },
      "upgradeQueryEvmReward(uint256)": {
        "details": "Fails if the `_witnetQueryId` is not in 'Posted' status.",
        "params": {
          "_witnetQueryId": "The unique query identifier."
        }
      }
    },
    "title": "Witnet Request Board \"trustable\" base implementation contract.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "Upgraded(address,address,bytes32,string)": {
        "notice": "Emitted every time the contract gets upgraded."
      },
      "WitnetQuery(uint256,uint256,(uint8,uint64))": {
        "notice": "Emitted every time a new query containing some verified data request is posted to the WRB."
      },
      "WitnetQueryResponse(uint256,uint256)": {
        "notice": "Emitted when a query with no callback gets reported into the WRB."
      },
      "WitnetQueryResponseDelivered(uint256,uint256,uint256)": {
        "notice": "Emitted when a query with a callback gets successfully reported into the WRB."
      },
      "WitnetQueryResponseDeliveryFailed(uint256,bytes,uint256,uint256,string)": {
        "notice": "Emitted when a query with a callback cannot get reported into the WRB."
      },
      "WitnetQueryRewardUpgraded(uint256,uint256)": {
        "notice": "Emitted when the reward of some not-yet reported query is upgraded."
      }
    },
    "kind": "user",
    "methods": {
      "estimateBaseFee(uint256,bytes32)": {
        "notice": "Estimate the minimum reward required for posting a data request."
      },
      "estimateBaseFee(uint256,uint16)": {
        "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."
      },
      "estimateReportEarnings(uint256[],bytes,uint256,uint256)": {
        "notice": "Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on queries providing no actual earnings."
      },
      "extractWitnetDataRequests(uint256[])": {
        "notice": "Retrieves the Witnet Data Request bytecodes and SLAs of previously posted queries."
      },
      "fetchQueryResponse(uint256)": {
        "notice": "Retrieves copy of all response data related to a previously posted request, removing the whole query from storage."
      },
      "getNextQueryId()": {
        "notice": "Returns next query id to be generated by the Witnet Request Board."
      },
      "getQuery(uint256)": {
        "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(uint256)": {
        "notice": "Retrieves the RAD hash and SLA parameters of the given query."
      },
      "getQueryResponse(uint256)": {
        "notice": "Retrieves the Witnet-provable result, and metadata, to a previously posted request.    "
      },
      "getQueryResponseStatus(uint256)": {
        "notice": "Returns query's result current status from a requester's point of view:- 0 => Void: the query is either non-existent or deleted;- 1 => Awaiting: the query has not yet been reported;- 2 => Ready: the query has been succesfully solved;- 3 => Error: the query couldn't get solved due to some issue."
      },
      "getQueryResultCborBytes(uint256)": {
        "notice": "Retrieves the CBOR-encoded buffer containing the Witnet-provided result to the given query."
      },
      "getQueryResultError(uint256)": {
        "notice": "Gets error code identifying some possible failure on the resolution of the given query."
      },
      "getQueryStatus(uint256)": {
        "notice": "Gets current status of given query."
      },
      "initialize(bytes)": {
        "notice": "Re-initialize contract's storage context upon a new upgrade from a proxy."
      },
      "isReporter(address)": {
        "notice": "Tells whether given address is included in the active reporters control list."
      },
      "isUpgradableFrom(address)": {
        "notice": "Tells whether provided address could eventually upgrade the contract."
      },
      "postRequest(bytes32,(uint8,uint64))": {
        "notice": "Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the reporter who relays back the Witnet-provable result to this request."
      },
      "postRequestWithCallback(bytes,(uint8,uint64),uint24)": {
        "notice": "Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reporteddirectly to the requesting contract. If the report callback fails for any reason, a `WitnetQueryResponseDeliveryFailed`event will be triggered, and the Witnet audit trail will be saved in storage, but not so the CBOR-encoded result."
      },
      "postRequestWithCallback(bytes32,(uint8,uint64),uint24)": {
        "notice": "Requests the execution of the given Witnet Data Request, in expectation that it will be relayed and solved by the Witnet blockchain. A reward amount is escrowed by the Witnet Request Board that will be transferred to the reporter who relays back the Witnet-provable result to this request. The Witnet-provable result will be reporteddirectly to the requesting contract. If the report callback fails for any reason, an `WitnetQueryResponseDeliveryFailed`will be triggered, and the Witnet audit trail will be saved in storage, but not so the actual CBOR-encoded result."
      },
      "reportResult(uint256,bytes32,bytes)": {
        "notice": "Reports the Witnet-provable result to a previously posted request. "
      },
      "reportResult(uint256,uint32,bytes32,bytes)": {
        "notice": "Reports the Witnet-provable result to a previously posted request."
      },
      "reportResultBatch((uint256,uint32,bytes32,bytes)[])": {
        "notice": "Reports Witnet-provided results to multiple requests within a single EVM tx.Emits either a WitnetQueryResponse* or a BatchReportError event per batched report."
      },
      "setReporters(address[])": {
        "notice": "Adds given addresses to the active reporters control list."
      },
      "unsetReporters(address[])": {
        "notice": "Removes given addresses from the active reporters control list."
      },
      "upgradeQueryEvmReward(uint256)": {
        "notice": "Increments the reward of a previously posted request by adding the transaction value to it."
      },
      "version()": {
        "notice": "Retrieves human-readable version tag of current implementation."
      }
    },
    "notice": "Contract to bridge requests to Witnet Decentralized Oracle Network.",
    "version": 1
  }
}