{
  "contractName": "WitOracleBaseQueriableTrustless",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidDataReport",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "BatchQueryError",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Burnt",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Received",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.Beacon",
          "name": "head",
          "type": "tuple"
        }
      ],
      "name": "Rollup",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Slashed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Staked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Unstaked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmRequester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "Witnet.RadonHash",
          "name": "radonHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.QuerySLA",
          "name": "radonParams",
          "type": "tuple"
        }
      ],
      "name": "WitOracleQuery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryReport",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackGas",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryReportDelivery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmDisputer",
          "type": "address"
        }
      ],
      "name": "WitOracleQueryReportDispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmSender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryUpgrade",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmOrigin",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmReporter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "Witnet.TransactionHash",
          "name": "witDrTxHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "Witnet.RadonHash",
          "name": "queryRadHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.QuerySLA",
          "name": "queryParams",
          "type": "tuple"
        },
        {
          "indexed": false,
          "internalType": "Witnet.Timestamp",
          "name": "resultTimestamp",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "WitOracleReport",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackActualGas",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evmCallbackRevertReason",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "WitOracleResportDeliveryFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "QUERY_AWAITING_BLOCKS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "QUERY_REPORTING_STAKE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "currency",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint24",
          "name": "_evmCallbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "estimateBaseFeeWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_evmWitPrice",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "estimateExtraFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNextQueryId",
      "outputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQuery",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint24",
                  "name": "callbackGas",
                  "type": "uint24"
                },
                {
                  "internalType": "bytes",
                  "name": "radonBytecode",
                  "type": "bytes"
                },
                {
                  "internalType": "Witnet.RadonHash",
                  "name": "radonHash",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct Witnet.QueryRequest",
              "name": "request",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "reporter",
                  "type": "address"
                },
                {
                  "internalType": "Witnet.Timestamp",
                  "name": "resultTimestamp",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.TransactionHash",
                  "name": "resultDrTxHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "resultCborBytes",
                  "type": "bytes"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                }
              ],
              "internalType": "struct Witnet.QueryResponse",
              "name": "response",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "slaParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "uuid",
              "type": "bytes15"
            },
            {
              "internalType": "Witnet.QueryEvmReward",
              "name": "reward",
              "type": "uint72"
            },
            {
              "internalType": "Witnet.BlockNumber",
              "name": "checkpoint",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.Query",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryEvmReward",
      "outputs": [
        {
          "internalType": "Witnet.QueryEvmReward",
          "name": "",
          "type": "uint72"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQueryRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bytes",
              "name": "radonBytecode",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "radonHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Witnet.QueryRequest",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQueryResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "reporter",
              "type": "address"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "resultDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            }
          ],
          "internalType": "struct Witnet.QueryResponse",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResult",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultStatus",
      "outputs": [
        {
          "internalType": "enum Witnet.ResultStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultStatusDescription",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultTrails",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "queryUUID",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.TransactionHash",
          "name": "resultDrTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.Timestamp",
          "name": "resultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "resultFinalityBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_queryIds",
          "type": "uint256[]"
        }
      ],
      "name": "getQueryStatusBatch",
      "outputs": [
        {
          "internalType": "enum Witnet.QueryStatus[]",
          "name": "_status",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatusString",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "queryData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "consumer",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "gasLimit",
              "type": "uint24"
            }
          ],
          "internalType": "struct Witnet.QueryCallback",
          "name": "_queryCallback",
          "type": "tuple"
        }
      ],
      "name": "queryDataWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "registry",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "upgradeQueryEvmReward",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tenant",
          "type": "address"
        }
      ],
      "name": "collateralOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tenant",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdraw",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_withdrawn",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "_dataPushReport",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "_proof",
          "type": "bytes"
        }
      ],
      "name": "parseDataReport",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "_dataPushReport",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "_proof",
          "type": "bytes"
        }
      ],
      "name": "pushDataReport",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "deleteQuery",
      "outputs": [
        {
          "internalType": "Witnet.QueryEvmReward",
          "name": "",
          "type": "uint72"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatus",
      "outputs": [
        {
          "internalType": "enum Witnet.QueryStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.Timestamp",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "determineBeaconIndexFromTimestamp",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.Timestamp",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "determineEpochFromTimestamp",
      "outputs": [
        {
          "internalType": "Witnet.BlockNumber",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "index",
          "type": "uint32"
        }
      ],
      "name": "getBeaconByIndex",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getGenesisBeacon",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastKnownBeacon",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastKnownBeaconIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "index",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "prevIndex",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes24",
                  "name": "prevRoot",
                  "type": "bytes24"
                },
                {
                  "internalType": "bytes16",
                  "name": "ddrTalliesMerkleRoot",
                  "type": "bytes16"
                },
                {
                  "internalType": "bytes16",
                  "name": "droTalliesMerkleRoot",
                  "type": "bytes16"
                },
                {
                  "internalType": "uint256[4]",
                  "name": "nextCommitteeAggPubkey",
                  "type": "uint256[4]"
                }
              ],
              "internalType": "struct Witnet.Beacon",
              "name": "beacon",
              "type": "tuple"
            },
            {
              "internalType": "uint256[2]",
              "name": "committeeAggSignature",
              "type": "uint256[2]"
            },
            {
              "internalType": "uint256[4][]",
              "name": "committeeMissingPubkeys",
              "type": "uint256[4][]"
            }
          ],
          "internalType": "struct Witnet.FastForward[]",
          "name": "_witOracleRollup",
          "type": "tuple[]"
        }
      ],
      "name": "rollupBeacons",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "claimQueryReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId[]",
          "name": "_queryIds",
          "type": "uint64[]"
        }
      ],
      "name": "claimQueryRewardBatch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_evmTotalReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "disputeQueryResponse",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.QueryId",
              "name": "queryId",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "queryHash",
              "type": "bytes15"
            },
            {
              "internalType": "bytes",
              "name": "witDrRelayerSignature",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.BlockNumber",
              "name": "witDrResultEpoch",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "witDrResultCborBytes",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Witnet.DataPullReport",
          "name": "_responseReport",
          "type": "tuple"
        }
      ],
      "name": "reportQueryResponse",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.QueryId",
              "name": "queryId",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "queryHash",
              "type": "bytes15"
            },
            {
              "internalType": "bytes",
              "name": "witDrRelayerSignature",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.BlockNumber",
              "name": "witDrResultEpoch",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "witDrResultCborBytes",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Witnet.DataPullReport[]",
          "name": "_responseReports",
          "type": "tuple[]"
        }
      ],
      "name": "reportQueryResponseBatch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_evmTotalReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "index",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "prevIndex",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes24",
                  "name": "prevRoot",
                  "type": "bytes24"
                },
                {
                  "internalType": "bytes16",
                  "name": "ddrTalliesMerkleRoot",
                  "type": "bytes16"
                },
                {
                  "internalType": "bytes16",
                  "name": "droTalliesMerkleRoot",
                  "type": "bytes16"
                },
                {
                  "internalType": "uint256[4]",
                  "name": "nextCommitteeAggPubkey",
                  "type": "uint256[4]"
                }
              ],
              "internalType": "struct Witnet.Beacon",
              "name": "beacon",
              "type": "tuple"
            },
            {
              "internalType": "uint256[2]",
              "name": "committeeAggSignature",
              "type": "uint256[2]"
            },
            {
              "internalType": "uint256[4][]",
              "name": "committeeMissingPubkeys",
              "type": "uint256[4][]"
            }
          ],
          "internalType": "struct Witnet.FastForward[]",
          "name": "_witOracleRollup",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "Witnet.QueryId",
              "name": "queryId",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "queryHash",
              "type": "bytes15"
            },
            {
              "internalType": "bytes",
              "name": "witDrRelayerSignature",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.BlockNumber",
              "name": "witDrResultEpoch",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "witDrResultCborBytes",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Witnet.DataPullReport",
          "name": "_responseReport",
          "type": "tuple"
        },
        {
          "internalType": "bytes32[]",
          "name": "_queryResponseReportMerkleProof",
          "type": "bytes32[]"
        }
      ],
      "name": "rollupQueryResponseProof",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDataReport\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"BatchQueryError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Burnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"indexed\":false,\"internalType\":\"struct Witnet.Beacon\",\"name\":\"head\",\"type\":\"tuple\"}],\"name\":\"Rollup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Unstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmRequester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"radonParams\",\"type\":\"tuple\"}],\"name\":\"WitOracleQuery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"WitOracleQueryReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmConsumer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackGas\",\"type\":\"uint256\"}],\"name\":\"WitOracleQueryReportDelivery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmDisputer\",\"type\":\"address\"}],\"name\":\"WitOracleQueryReportDispute\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"}],\"name\":\"WitOracleQueryUpgrade\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmOrigin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmConsumer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmReporter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"name\":\"WitOracleReport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmConsumer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackActualGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"evmCallbackRevertReason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"name\":\"WitOracleResportDeliveryFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"QUERY_AWAITING_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"QUERY_REPORTING_STAKE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tenant\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"channel\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"claimQueryReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId[]\",\"name\":\"_queryIds\",\"type\":\"uint64[]\"}],\"name\":\"claimQueryRewardBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmTotalReward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tenant\",\"type\":\"address\"}],\"name\":\"collateralOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"deleteQuery\",\"outputs\":[{\"internalType\":\"Witnet.QueryEvmReward\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"determineBeaconIndexFromTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"determineEpochFromTimestamp\",\"outputs\":[{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"disputeQueryResponse\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"estimateBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"_evmCallbackGasLimit\",\"type\":\"uint24\"}],\"name\":\"estimateBaseFeeWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_evmWitPrice\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"}],\"name\":\"estimateExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getBeaconByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisBeacon\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastKnownBeacon\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastKnownBeaconIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextQueryId\",\"outputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"getQuery\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bytes\",\"name\":\"radonBytecode\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.QueryRequest\",\"name\":\"request\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"resultDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"internalType\":\"struct Witnet.QueryResponse\",\"name\":\"response\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"slaParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.QueryUUID\",\"name\":\"uuid\",\"type\":\"bytes15\"},{\"internalType\":\"Witnet.QueryEvmReward\",\"name\":\"reward\",\"type\":\"uint72\"},{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"checkpoint\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.Query\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryEvmReward\",\"outputs\":[{\"internalType\":\"Witnet.QueryEvmReward\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"getQueryRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bytes\",\"name\":\"radonBytecode\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"radonHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.QueryRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"}],\"name\":\"getQueryResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"reporter\",\"type\":\"address\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"resultDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"}],\"internalType\":\"struct Witnet.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResult\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultStatus\",\"outputs\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultStatusDescription\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryResultTrails\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"queryUUID\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"resultDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"resultFinalityBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryStatus\",\"outputs\":[{\"internalType\":\"enum Witnet.QueryStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_queryIds\",\"type\":\"uint256[]\"}],\"name\":\"getQueryStatusBatch\",\"outputs\":[{\"internalType\":\"enum Witnet.QueryStatus[]\",\"name\":\"_status\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"getQueryStatusString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"_dataPushReport\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"parseDataReport\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"_dataPushReport\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"pushDataReport\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.RadonHash\",\"name\":\"_queryRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"}],\"name\":\"queryData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.RadonHash\",\"name\":\"_queryRAD\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"_querySLA\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"gasLimit\",\"type\":\"uint24\"}],\"internalType\":\"struct Witnet.QueryCallback\",\"name\":\"_queryCallback\",\"type\":\"tuple\"}],\"name\":\"queryDataWithCallback\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.QueryUUID\",\"name\":\"queryHash\",\"type\":\"bytes15\"},{\"internalType\":\"bytes\",\"name\":\"witDrRelayerSignature\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"witDrResultEpoch\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"witDrResultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.DataPullReport\",\"name\":\"_responseReport\",\"type\":\"tuple\"}],\"name\":\"reportQueryResponse\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.QueryUUID\",\"name\":\"queryHash\",\"type\":\"bytes15\"},{\"internalType\":\"bytes\",\"name\":\"witDrRelayerSignature\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"witDrResultEpoch\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"witDrResultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.DataPullReport[]\",\"name\":\"_responseReports\",\"type\":\"tuple[]\"}],\"name\":\"reportQueryResponseBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmTotalReward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"beacon\",\"type\":\"tuple\"},{\"internalType\":\"uint256[2]\",\"name\":\"committeeAggSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4][]\",\"name\":\"committeeMissingPubkeys\",\"type\":\"uint256[4][]\"}],\"internalType\":\"struct Witnet.FastForward[]\",\"name\":\"_witOracleRollup\",\"type\":\"tuple[]\"}],\"name\":\"rollupBeacons\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"beacon\",\"type\":\"tuple\"},{\"internalType\":\"uint256[2]\",\"name\":\"committeeAggSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4][]\",\"name\":\"committeeMissingPubkeys\",\"type\":\"uint256[4][]\"}],\"internalType\":\"struct Witnet.FastForward[]\",\"name\":\"_witOracleRollup\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.QueryUUID\",\"name\":\"queryHash\",\"type\":\"bytes15\"},{\"internalType\":\"bytes\",\"name\":\"witDrRelayerSignature\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"witDrResultEpoch\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"witDrResultCborBytes\",\"type\":\"bytes\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Witnet.DataPullReport\",\"name\":\"_responseReport\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"_queryResponseReportMerkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"rollupQueryResponseProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_queryId\",\"type\":\"uint256\"}],\"name\":\"upgradeQueryEvmReward\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_withdrawn\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"The Witnet Foundation\",\"kind\":\"dev\",\"methods\":{\"deleteQuery(uint256)\":{\"details\":\"Fails if the query is not in a final status, or not called from the actual requester.\"},\"estimateBaseFee(uint256)\":{\"params\":{\"_evmGasPrice\":\"Expected gas price to pay upon posting the data request.\"}},\"estimateBaseFeeWithCallback(uint256,uint24)\":{\"params\":{\"_evmCallbackGasLimit\":\"Maximum gas to be spent when reporting the data request result.\",\"_evmGasPrice\":\"Expected gas price to pay upon posting the data request.\"}},\"estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))\":{\"details\":\"The extra fee gets calculated in proportion to:\",\"params\":{\"_evmGasPrice\":\"Tentative EVM gas price at the moment the query result is ready.\",\"_evmWitPrice\":\"Tentative nanoWit price in Wei at the moment the query is solved on the Wit/Oracle blockchain.\",\"_querySLA\":\"The query SLA data security parameters as required for the Wit/Oracle blockchain. \"}},\"getQueryRequest(uint64)\":{\"params\":{\"_queryId\":\"The unique query identifier.\"}},\"getQueryResponse(uint64)\":{\"details\":\"Fails if the `_queryId` is not in 'Reported' status.\",\"params\":{\"_queryId\":\"The unique query identifier\"}},\"upgradeQueryEvmReward(uint256)\":{\"details\":\"Fails if the `_queryId` is not in 'Posted' status.\",\"params\":{\"_queryId\":\"The unique query identifier.\"}}},\"title\":\"Queriable WitOracle \\\"trustless\\\" base implementation.\",\"version\":1},\"userdoc\":{\"events\":{\"WitOracleQuery(address,uint256,uint256,uint64,bytes32,(uint16,uint16,uint64))\":{\"notice\":\"Emitted every time a new query containing some verified data request is posted to the WitOracle.\"},\"WitOracleQueryReport(uint64,uint256)\":{\"notice\":\"Emitted when a query with no callback gets reported into the WRB.\"},\"WitOracleQueryReportDelivery(uint64,address,uint256,uint256)\":{\"notice\":\"Emitted when a query with a callback gets successfully reported into the WRB.\"},\"WitOracleQueryUpgrade(uint64,address,uint256,uint256)\":{\"notice\":\"Emitted when the reward of some not-yet reported query gets upgraded.\"},\"WitOracleResportDeliveryFailed(uint64,address,uint256,uint256,string,bytes)\":{\"notice\":\"Emitted when a query with a callback cannot get reported into the WRB.\"}},\"kind\":\"user\",\"methods\":{\"QUERY_AWAITING_BLOCKS()\":{\"notice\":\"Number of blocks to await for either a dispute or a proven response to some query.\"},\"QUERY_REPORTING_STAKE()\":{\"notice\":\"Amount in wei to be staked upon reporting or disputing some query.\"},\"channel()\":{\"notice\":\"Uniquely identifies the WitOracle instance and the chain on which it's deployed.\"},\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"deleteQuery(uint256)\":{\"notice\":\"Removes all query data from storage. Pays back reward on expired queries.\"},\"estimateBaseFee(uint256)\":{\"notice\":\"Estimate the minimum reward required for posting a data request.\"},\"estimateBaseFeeWithCallback(uint256,uint24)\":{\"notice\":\"Estimate the minimum reward required for posting a data request with a callback.\"},\"estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))\":{\"notice\":\"Estimate the extra reward (i.e. over the base fee) to be paid when posting a newdata query in order to avoid getting provable \\\"too low incentives\\\" results fromthe Wit/Oracle blockchain. \"},\"getNextQueryId()\":{\"notice\":\"Returns next query id to be generated by the Witnet Request Board.\"},\"getQuery(uint64)\":{\"notice\":\"Gets the whole Query data contents, if any, no matter its current status.\"},\"getQueryEvmReward(uint256)\":{\"notice\":\"Gets the current EVM reward the report can claim, if not done yet.\"},\"getQueryRequest(uint64)\":{\"notice\":\"Retrieves the RAD hash and SLA parameters of the given query.\"},\"getQueryResponse(uint64)\":{\"notice\":\"Retrieves the Witnet-provable result, and metadata, to a previously posted request.    \"},\"getQueryResultTrails(uint256)\":{\"notice\":\"Gets query's result back tracing trails\"},\"registry()\":{\"notice\":\"Returns the WitOracleRadonRegistry in which Witnet-compliant Radon requestscan be formally verified and forever registered as a away to let smart contracts and users to track actual data sources and offchain computations applied on data updates safely reported from the Wit/Oracle blockchain. \"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"upgradeQueryEvmReward(uint256)\":{\"notice\":\"Increments the reward of a previously posted request by adding the transaction value to it.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/base/WitOracleBaseQueriableTrustless.sol\":\"WitOracleBaseQueriableTrustless\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"project:/contracts/WitOracle.sol\":{\"keccak256\":\"0x7f20eab15140df459753dfa8e406b826918b56ebe2c46456f9d04345c02629d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0573ce3d48200c71d8235a1a8c055b706420b2037bd21336f3c61713c3b8349\",\"dweb:/ipfs/QmY7BnVaNXFtJs1BFdeaa7dQfvUVoZyfwtv9HuToCxUUHU\"]},\"project:/contracts/WitOraclePushOnly.sol\":{\"keccak256\":\"0x659b4746c5a773b554b7a94bea3f55a995a8f850d750108302a8face9d1c833c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291c6b4cd5c0f223ee63cc8cee2e228f47e1344a935eb89b6ef8f993eb5ce18e\",\"dweb:/ipfs/QmeKNLaVURv4N5jz5z67WQ4wyUUucqMaYLZQ2NnuuNyyPS\"]},\"project:/contracts/WitOracleRadonRegistry.sol\":{\"keccak256\":\"0xc9bd0ab02e13b36fe4072868ae978a230c5132a702d6594f11270ec5e7926e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8321305b131abec96c492302163d95f8777106f74a0d42f5f50fdf60d2b3a381\",\"dweb:/ipfs/QmRx7FGWPkC41afPuJpBTDQ85wjH95Dbi3qAxVNfNZUsWe\"]},\"project:/contracts/core/base/WitOracleBasePushOnly.sol\":{\"keccak256\":\"0xdf4be00f732674d6a1a83fbb5801571690623a17b7388613af3a3debadf9ce2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b4b8a611ed9186249e30fcaeecc1d7bbda50338e794d5b65865f885f20ec6e\",\"dweb:/ipfs/Qme8xqsdQqdyDuy1DYijquG6LGJHqRzyruZ1MR6hPJCxmY\"]},\"project:/contracts/core/base/WitOracleBaseQueriable.sol\":{\"keccak256\":\"0xed332c1131be86c1b97223e0488488f7091fe84f21b88fd2724cb7c0d91397ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8c48b617f0696470db8914a6c8627fc6c85ef09794e2d13accbbe73399442bb\",\"dweb:/ipfs/QmVG1wvboCBWGw2Q2Lr7yqTmBNwzspyD3mTMYkZm57WY31\"]},\"project:/contracts/core/base/WitOracleBaseQueriableTrustless.sol\":{\"keccak256\":\"0x81db71925bd0969590643c6dc5ee660433b5054c784db775d8cfe5720ef499f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e86a50ccc15c18ce8f613aff8431276124a622b020a258f938b788fbd870b3f3\",\"dweb:/ipfs/Qme7foSk74ceqP6jwB7EGXGZVqnRb2MBkc3EWpYjSkbvTn\"]},\"project:/contracts/data/WitOracleDataLib.sol\":{\"keccak256\":\"0x879c513c3cac839300e954d5ffe61c14eaec3052b39898ec2402068169fddd55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f58f4aa26e2a174fb5cee2fd9c06a10c337e6766b804e38bb4bbb3c3d4682d\",\"dweb:/ipfs/QmTjS8hws4VAd3S8dpNmX3zyV7oCF7xJ7AZTRJwrmbhSmi\"]},\"project:/contracts/data/WitOracleTrustlessDataLib.sol\":{\"keccak256\":\"0xe8a7bc0ec65380336ceb381c56afa6a3aff93bca34b4380a6c6d6faaeab16ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0a4f80c9cae5ba779b8baa9a85feb2a948dd6d945002859405fd1fada34f809\",\"dweb:/ipfs/QmWGYMduHTbuvNE4p7JuVEBQXPzi8fHs1x7Gvqse2Upssa\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleAppliance.sol\":{\"keccak256\":\"0xcd8e57eca7f8042c85a83264e2ff6d1cd7a9f1521831736d7f57bcc7800642e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c639668e9439d60770b5df77436088ae7bd0aeb1d1be446552a98b6c29138f0\",\"dweb:/ipfs/QmbN3f5YuKMSd2j9tjay3VEkiYibGWpbfbwRNyrxA8k4o4\"]},\"project:/contracts/interfaces/IWitOracleQueriable.sol\":{\"keccak256\":\"0xdb0da1e377a35a7d620f43cb583a876750a52d91da2b888f48042483ad9c4910\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfcdf3e96ec3c5de7438f82e3d5a1dc9af9eb29080044213dccb26ff978354c\",\"dweb:/ipfs/Qmap2FzSysh2fug88eortbsTM7itFygRzKc9HfV43ePMik\"]},\"project:/contracts/interfaces/IWitOracleQueriableConsumer.sol\":{\"keccak256\":\"0xe8143d2387d674022f453b57652998f53cbe4c21fe35e59421428142355c8ebf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e6c3e3d3e7168a3fb75b1eca23d078d5240e5b02dac8a449d1ddf79256a34d8\",\"dweb:/ipfs/QmbGk4tQzTogTBVYiT8t3Gqtk6qDs5nyp9Z53GryTjKAm5\"]},\"project:/contracts/interfaces/IWitOracleQueriableEvents.sol\":{\"keccak256\":\"0x47c283e931006d35bd2599524f86724e45eae6fad2fdd9cdecd1c85a90ff3f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ad0520f99ec9298536ae9434f58caeb470c10dd3eaab1e4c7ed4cae9a97e2a2\",\"dweb:/ipfs/QmSuYCsSPweZfQc5Fbf9jYDdx4u7gwYCUdjhpcrrxmWZy6\"]},\"project:/contracts/interfaces/IWitOracleQueriableExperimental.sol\":{\"keccak256\":\"0x57c0007d813ed3e6dd3e0bb128e6ca7a0324214962823c6456e2e37d78ab4070\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5edc498ccc728327f1f3c80d2decd7ca64920a3aee4faaba08dd354f1256b66\",\"dweb:/ipfs/QmdEJWUtQqTVdFLCiNKUPSe3NwXzuHmG6XzA1VbHHHgdPy\"]},\"project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol\":{\"keccak256\":\"0x043a719845d75dccc3c7c046fdd214bb252ab2b85400fbd139ed5cea9469becc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b1be7cbf990ff4d383b1c0695626af794442f9a48f02e13435793c4316ff011\",\"dweb:/ipfs/QmX3Lq17FMsN2T9K4fAYg6CRTYjwHd6hT1XKjEA2T7QeM5\"]},\"project:/contracts/interfaces/IWitOracleQueriableTrustlessReporter.sol\":{\"keccak256\":\"0x346270dc2851df1cc68e92154737e207f488ac4f7bd967093b433a88c835448b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2070a85b434b06c00f5a89b6676e6c9b826f75f7f4194c1541ddd33ae57864a1\",\"dweb:/ipfs/QmNqh53Cm2H2S4CUoJ4RGLE1NLs3X3weHJSXzm9RMpjLxu\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistryEvents.sol\":{\"keccak256\":\"0x9bd30477aeb33de11c4f1df3cd7451452a90ffed1f6eabd9e643046bf1e60d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fb38c5528ed2e1bf90ff8d123bf5a9523d0dc49f448d6c39ddad1cd9048d0a\",\"dweb:/ipfs/QmQq1RUwFgnGTk3xDAmN6u2WMPBzvjZNJc7TPYtG6aZfRn\"]},\"project:/contracts/interfaces/IWitOracleTrustableAdmin.sol\":{\"keccak256\":\"0x94b69b5a460d1407746ac70d32a0c5d4fca564b16cbd1940b822dd0ecb5336e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a773b9d963647a5591b95c8fb359efd461dc494d1e3a1754cc83343310e07605\",\"dweb:/ipfs/QmU77Zre43r5sVj4DK2FjTda31zWgNDr9sGPug1dRv4ih6\"]},\"project:/contracts/interfaces/IWitOracleTrustless.sol\":{\"keccak256\":\"0x9220a2dd4736b37d909af59603b3d125758deb5d1845650aaa7c92cabd75f75b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d224d9c72e077605427b87c1fa1b47de53b1835dd148a27c13e9eb5a620e6d\",\"dweb:/ipfs/Qmaz8y5E4c73Zw4y4Siy2J3oNuhw9M7v2s7uC9XLi6dZaw\"]},\"project:/contracts/interfaces/legacy/IWitOracleLegacy.sol\":{\"keccak256\":\"0xd2929c9aa5a02d261d6d1a068a6b7231ae58d8f81f081ba89f2d3267a31fbbb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://956b26323a02cf400c32012586954fc5dbc98b4d5b7a8b0533401cbda8619059\",\"dweb:/ipfs/QmSWdCRwL5t3atFM8osdaohLTqEEmY1FbnR6xrRCmw1GDM\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequest.sol\":{\"keccak256\":\"0x0fb3f0ba03f4f7a0214ecb36df26525564cf51a8a2176cba92c185af8a1d419e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://340b7bdb92c3259519fe120eb3061b393e7a5e9c1b576a2fe4eab020af466b64\",\"dweb:/ipfs/QmRt4wMX9WdxFwfdFMUZ3zKMAW1grS7qLk1x1PDMJdEAVU\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequestTemplate.sol\":{\"keccak256\":\"0x9e065ef5880c64eefff5fcfb1347fde6684e0e311f8c2350a6aefdbd1f8b0f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://817de760c7cce9d00dcd4312aea6434d88abddf1c0e68ea7e8fb1e6c5165a445\",\"dweb:/ipfs/QmUNmtn85nFXbje2nRJQY2h65KJCVinDMMU6P2jQmo1Nij\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/WitOracleResultStatusLib.sol\":{\"keccak256\":\"0x9ea0a1a68498957ee7baaae50e078ee845dacd031f129b0a3cbf40cd413f3efb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0836f04c9ed07cb90b54b07b38eb95fba769be0d921e687fe1184d6570ff34e8\",\"dweb:/ipfs/QmPv9g3KGobVdr5bsCv5715V97DmEdTqzz9mhbEZjugqgC\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Escrowable.sol\":{\"keccak256\":\"0xf0fdb82142f66323a1d419839ddcf67b51ac2faa418a2b364e0b2e4b5fdfbc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5123dc63b3d2f501eec6b9616db46833c155c1dca416bb58dbeb924558f8020\",\"dweb:/ipfs/QmakA3u4rqWpzeiKkUZxhnQotReaybCCDMkkJZFHyZVb1U\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x29ce79b9329cc854ddb0ee546e5a17f3cedafa91c7d614f43e8d6537680b1734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00d5ce85f66c3c32b8b69bfed2f07f40d14ac72c2f67d2de6601de0be16b5af1\",\"dweb:/ipfs/QmZogwLRBjFUJVSzR8YuMfo3mKg8WvYVbn2QvWXsCVP92V\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./WitOracleBaseQueriable.sol\";\r\nimport \"../../data/WitOracleTrustlessDataLib.sol\";\r\nimport \"../../interfaces/IWitOracleTrustless.sol\";\r\nimport \"../../interfaces/IWitOracleQueriableTrustlessReporter.sol\";\r\nimport \"../../patterns/Escrowable.sol\";\r\n\r\n/// @title Queriable WitOracle \"trustless\" base implementation.\r\n/// @author The Witnet Foundation\r\nabstract contract WitOracleBaseQueriableTrustless\r\n    is \r\n        Escrowable,\r\n        WitOracleBaseQueriable,\r\n        IWitOracleTrustless,\r\n        IWitOracleQueriableTrustlessReporter\r\n{\r\n    using Witnet for Witnet.DataPullReport;\r\n    using WitOracleTrustlessDataLib for WitOracleDataLib.Query;\r\n\r\n    /// @notice Number of blocks to await for either a dispute or a proven response to some query.\r\n    uint256 immutable public QUERY_AWAITING_BLOCKS;\r\n\r\n    /// @notice Amount in wei to be staked upon reporting or disputing some query.\r\n    uint256 immutable public QUERY_REPORTING_STAKE;\r\n\r\n    modifier checkQueryReward(uint256 _msgValue, uint256 _baseFee) virtual override {\r\n        if (_msgValue < _baseFee) {\r\n            __burn(msg.sender, _baseFee - _msgValue);\r\n        \r\n        } else if (_msgValue > _baseFee * 10) {\r\n            _revert(\"too much reward\");\r\n\r\n        } _;   \r\n    }\r\n\r\n    constructor(\r\n            uint256 _queryAwaitingBlocks,\r\n            uint256 _queryReportingStake\r\n        )\r\n        Payable(address(0))\r\n    {\r\n        _require(_queryAwaitingBlocks < 64, \"too many awaiting blocks\");\r\n        _require(_queryReportingStake > 0, \"no reporting stake?\");\r\n        \r\n        QUERY_AWAITING_BLOCKS = _queryAwaitingBlocks;\r\n        QUERY_REPORTING_STAKE = _queryReportingStake;\r\n\r\n        // store genesis beacon:\r\n        WitOracleTrustlessDataLib.data().beacons[\r\n            Witnet.WIT_2_GENESIS_BEACON_INDEX\r\n        ] = Witnet.Beacon({\r\n            index: Witnet.WIT_2_GENESIS_BEACON_INDEX,\r\n            prevIndex: Witnet.WIT_2_GENESIS_BEACON_PREV_INDEX,\r\n            prevRoot: Witnet.WIT_2_GENESIS_BEACON_PREV_ROOT,\r\n            ddrTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT,\r\n            droTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT,\r\n            nextCommitteeAggPubkey: [\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3\r\n            ]\r\n        });\r\n    } \r\n    \r\n    // ================================================================================================================\r\n    // --- Escrowable -------------------------------------------------------------------------------------------------\r\n\r\n    receive() external payable virtual override {\r\n        __deposit(msg.sender, _getMsgValue());\r\n    }\r\n\r\n    function collateralOf(address tenant)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return WitOracleTrustlessDataLib.data().escrows[tenant].collateral;\r\n    }\r\n\r\n    function balanceOf(address tenant)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return WitOracleTrustlessDataLib.data().escrows[tenant].balance;\r\n    }\r\n\r\n    function withdraw()\r\n        external\r\n        virtual override\r\n        returns (uint256 _withdrawn)\r\n    {\r\n        _withdrawn = WitOracleTrustlessDataLib.withdraw(msg.sender);\r\n        __safeTransferTo(\r\n            payable(msg.sender), \r\n            _withdrawn\r\n        );\r\n    }\r\n\r\n    function __burn(address from, uint256 value) \r\n        virtual override\r\n        internal\r\n    {\r\n        WitOracleTrustlessDataLib.burn(from, value);\r\n    }\r\n\r\n    function __deposit(address from, uint256 value)\r\n        virtual override\r\n        internal\r\n    {\r\n        WitOracleTrustlessDataLib.deposit(from, value);\r\n    }\r\n\r\n    function __stake(address from, uint256 value)\r\n        virtual override\r\n        internal\r\n    {\r\n        WitOracleTrustlessDataLib.stake(from, value);\r\n    }\r\n\r\n    function __slash(address from, address to, uint256 value)\r\n        virtual override\r\n        internal\r\n    {\r\n        WitOracleTrustlessDataLib.slash(from, to, value);\r\n    }\r\n\r\n    function __unstake(address from, uint256 value)\r\n        virtual override\r\n        internal\r\n    {\r\n        WitOracleTrustlessDataLib.unstake(from, value);\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Overrides IWitOracle (trustlessly) -------------------------------------------------------------------------\r\n\r\n    function parseDataReport(Witnet.DataPushReport calldata _dataPushReport, bytes calldata _proof)\r\n        virtual override \r\n        external view\r\n        returns (Witnet.DataResult memory)\r\n    {\r\n        (Witnet.FastForward[] memory _rollup, bytes32[] memory _merkle) = abi.decode(\r\n            _proof, \r\n            (Witnet.FastForward[], bytes32[])\r\n        );\r\n        try WitOracleTrustlessDataLib.parseDataPushReport(\r\n            _dataPushReport,\r\n            _rollup,\r\n            _merkle\r\n        \r\n        ) returns (\r\n            Witnet.DataResult memory _queryResult\r\n        ) {\r\n            return _queryResult;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            revert(\"unhandled assertion\");\r\n        }\r\n    }\r\n\r\n    function pushDataReport(Witnet.DataPushReport calldata _dataPushReport, bytes calldata _proof)\r\n        virtual override external\r\n        returns (Witnet.DataResult memory)\r\n    {\r\n        (Witnet.FastForward[] memory _rollup, bytes32[] memory _merkle) = abi.decode(\r\n            _proof, \r\n            (Witnet.FastForward[], bytes32[])\r\n        );\r\n        try WitOracleTrustlessDataLib.rollupDataPushReport(\r\n            _dataPushReport,\r\n            _rollup,\r\n            _merkle\r\n        \r\n        ) returns (\r\n            Witnet.DataResult memory _queryResult\r\n        ) {\r\n            return _queryResult;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            revert(\"unhandled assertion\");\r\n        }\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Overrides IWitOracleQueriable (truslessly) -----------------------------------------------------------------\r\n\r\n    /// @notice Removes all query data from storage. Pays back reward on expired queries.\r\n    /// @dev Fails if the query is not in a final status, or not called from the actual requester.\r\n    function deleteQuery(uint256 _queryId)\r\n        virtual override external\r\n        returns (Witnet.QueryEvmReward)\r\n    {\r\n        try WitOracleTrustlessDataLib.deleteQueryTrustlessly(\r\n            _queryId,\r\n            QUERY_AWAITING_BLOCKS,\r\n            QUERY_REPORTING_STAKE\r\n        \r\n        ) returns (\r\n            Witnet.QueryEvmReward _queryReward\r\n        ) {\r\n            uint256 _evmPayback = Witnet.QueryEvmReward.unwrap(_queryReward);\r\n            if (_evmPayback > 0) {\r\n                // transfer unused reward to requester, only if the query expired:\r\n                __safeTransferTo(\r\n                    payable(msg.sender),\r\n                    _evmPayback\r\n                );\r\n            }\r\n            return _queryReward;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n\r\n    function getQueryStatus(uint256 _queryId)\r\n        virtual override\r\n        public view\r\n        returns (Witnet.QueryStatus)\r\n    {\r\n        return WitOracleDataLib\r\n            .seekQuery(_queryId)\r\n            .getQueryStatusTrustlessly(QUERY_AWAITING_BLOCKS);\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- IWitOracleTrustless -------------------------------------------------------------------------------------------\r\n\r\n    function determineBeaconIndexFromTimestamp(Witnet.Timestamp timestamp)\r\n        virtual override\r\n        external pure\r\n        returns (uint64)\r\n    {\r\n        return Witnet.determineBeaconIndexFromTimestamp(timestamp);\r\n    }\r\n    \r\n    function determineEpochFromTimestamp(Witnet.Timestamp timestamp)\r\n        virtual override\r\n        external pure\r\n        returns (Witnet.BlockNumber)\r\n    {\r\n        return Witnet.determineEpochFromTimestamp(timestamp);\r\n    }\r\n\r\n    function getBeaconByIndex(uint32 index)\r\n        virtual override\r\n        public view\r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        return WitOracleTrustlessDataLib.seekBeacon(index);\r\n    }\r\n\r\n    function getGenesisBeacon() \r\n        virtual override \r\n        external pure\r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        return Witnet.Beacon({\r\n            index: Witnet.WIT_2_GENESIS_BEACON_INDEX,\r\n            prevIndex: Witnet.WIT_2_GENESIS_BEACON_PREV_INDEX,\r\n            prevRoot: Witnet.WIT_2_GENESIS_BEACON_PREV_ROOT,\r\n            ddrTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT,\r\n            droTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT,\r\n            nextCommitteeAggPubkey: [\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3\r\n            ]\r\n        });\r\n    }\r\n\r\n    function getLastKnownBeacon() \r\n        virtual override\r\n        public view\r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        return WitOracleTrustlessDataLib.getLastKnownBeacon();\r\n    }\r\n\r\n    function getLastKnownBeaconIndex()\r\n        virtual override\r\n        public view\r\n        returns (uint32)\r\n    {\r\n        return uint32(WitOracleTrustlessDataLib.getLastKnownBeaconIndex());\r\n    }\r\n\r\n    function rollupBeacons(Witnet.FastForward[] calldata _witOracleRollup)\r\n        virtual override public \r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        try WitOracleTrustlessDataLib.rollupBeacons(\r\n            _witOracleRollup\r\n        ) returns (\r\n            Witnet.Beacon memory _witOracleHead\r\n        ) {\r\n            return _witOracleHead;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- IWitOracleQueriableTrustlessReporter --------------------------------------------------------------------------------\r\n\r\n    function claimQueryReward(Witnet.QueryId _queryId)\r\n        virtual override external\r\n        returns (uint256)\r\n    {\r\n        try WitOracleTrustlessDataLib.claimQueryReward(\r\n            Witnet.QueryId.unwrap(_queryId), \r\n            QUERY_AWAITING_BLOCKS,\r\n            QUERY_REPORTING_STAKE\r\n\r\n        ) returns (\r\n            uint256 _evmReward\r\n        ) {\r\n            return _evmReward;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n\r\n    function claimQueryRewardBatch(Witnet.QueryId[] calldata _queryIds)\r\n        virtual override external\r\n        returns (uint256 _evmTotalReward)\r\n    {\r\n        for (uint _ix = 0; _ix < _queryIds.length; _ix ++) {\r\n            try WitOracleTrustlessDataLib.claimQueryReward(\r\n                Witnet.QueryId.unwrap(_queryIds[_ix]),\r\n                QUERY_AWAITING_BLOCKS,\r\n                QUERY_REPORTING_STAKE\r\n                \r\n            ) returns (uint256 _evmReward) {\r\n                _evmTotalReward += _evmReward;\r\n            \r\n            } catch Error(string memory _reason) {\r\n                emit BatchQueryError(\r\n                    _queryIds[_ix], \r\n                    _reason\r\n                );\r\n        \r\n            } catch (bytes memory) {\r\n                emit BatchQueryError(\r\n                    _queryIds[_ix], \r\n                    _revertUnhandledExceptionReason()\r\n                );\r\n            }\r\n        }\r\n    }\r\n\r\n    function disputeQueryResponse(Witnet.QueryId _queryId) \r\n        virtual override external\r\n        returns (uint256)\r\n    {\r\n        try WitOracleTrustlessDataLib.disputeQueryResponse(\r\n            Witnet.QueryId.unwrap(_queryId),\r\n            QUERY_AWAITING_BLOCKS,\r\n            QUERY_REPORTING_STAKE\r\n        ) returns (uint256 _evmPotentialReward) {\r\n            return _evmPotentialReward;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n\r\n    function reportQueryResponse(Witnet.DataPullReport calldata _responseReport)\r\n        virtual override public \r\n        returns (uint256)\r\n    {\r\n        try WitOracleTrustlessDataLib.reportQueryResponseTrustlessly(\r\n            _responseReport,\r\n            QUERY_AWAITING_BLOCKS,\r\n            QUERY_REPORTING_STAKE\r\n\r\n        ) returns (\r\n            address evmReporter,\r\n            uint256 evmGasPrice,\r\n            uint64  evmFinalityBlock,\r\n            Witnet.QueryId queryId,\r\n            Witnet.Timestamp witDrResultTimestamp,\r\n            Witnet.TransactionHash witDrTxHash,\r\n            bytes memory witDrResultCborBytes\r\n        ) {\r\n            try WitOracleDataLib\r\n                .reportResult(\r\n                    evmReporter,\r\n                    evmGasPrice,\r\n                    evmFinalityBlock,\r\n                    Witnet.QueryId.unwrap(queryId),\r\n                    witDrResultTimestamp,\r\n                    witDrTxHash,\r\n                    witDrResultCborBytes\r\n            ) returns (\r\n                uint256 _evmReward\r\n            ) {\r\n                return _evmReward;\r\n            \r\n            } catch Error(string memory _reason) {\r\n                _revert(_reason);\r\n            \r\n            } catch (bytes memory) {\r\n                _revertUnhandledException();    \r\n            }\r\n        \r\n        } catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n    \r\n    function reportQueryResponseBatch(Witnet.DataPullReport[] calldata _responseReports)\r\n        virtual override external \r\n        returns (uint256 _evmTotalReward)\r\n    {\r\n        for (uint _ix = 0; _ix < _responseReports.length; _ix ++) {\r\n            Witnet.DataPullReport calldata _responseReport = _responseReports[_ix];\r\n            try WitOracleTrustlessDataLib.reportQueryResponseTrustlessly(\r\n                _responseReport,\r\n                QUERY_AWAITING_BLOCKS,\r\n                QUERY_REPORTING_STAKE\r\n            ) returns (\r\n                address evmReporter,\r\n                uint256 evmGasPrice,\r\n                uint64  evmFinalityBlock,\r\n                Witnet.QueryId queryId,\r\n                Witnet.Timestamp witDrResultTimestamp,\r\n                Witnet.TransactionHash witDrTxHash,\r\n                bytes memory witDrResultCborBytes\r\n            ) {\r\n                try WitOracleDataLib.reportResult(\r\n                    evmReporter,\r\n                    evmGasPrice,\r\n                    evmFinalityBlock,\r\n                    Witnet.QueryId.unwrap(queryId),\r\n                    witDrResultTimestamp,\r\n                    witDrTxHash,\r\n                    witDrResultCborBytes\r\n                ) returns (\r\n                    uint256 _evmPartialReward\r\n                ) {\r\n                    _evmTotalReward += _evmPartialReward;\r\n                \r\n                } catch Error(string memory _reason) {\r\n                    emit BatchQueryError(\r\n                        _responseReport.queryId,\r\n                        _reason\r\n                    );\r\n                \r\n                } catch (bytes memory) {\r\n                    emit BatchQueryError(\r\n                        _responseReport.queryId,\r\n                        _revertUnhandledExceptionReason()\r\n                    );\r\n                }\r\n            \r\n            } catch Error(string memory _reason) {\r\n                emit BatchQueryError(\r\n                    _responseReport.queryId,\r\n                    _reason\r\n                );\r\n    \r\n            } catch (bytes memory) {\r\n                emit BatchQueryError(\r\n                    _responseReport.queryId,\r\n                    _revertUnhandledExceptionReason()\r\n                );\r\n            }\r\n        }\r\n    }\r\n\r\n    function rollupQueryResponseProof(\r\n            Witnet.FastForward[] calldata _witOracleRollup, \r\n            Witnet.DataPullReport calldata _responseReport,\r\n            bytes32[] calldata _queryResponseReportMerkleProof\r\n        ) \r\n        virtual override external\r\n        returns (uint256)\r\n    {\r\n        try WitOracleTrustlessDataLib.rollupQueryResponseProof(\r\n            _witOracleRollup,\r\n            _responseReport,\r\n            _queryResponseReportMerkleProof,\r\n            QUERY_AWAITING_BLOCKS,\r\n            QUERY_REPORTING_STAKE\r\n            \r\n        ) returns (\r\n            uint256 _evmReward\r\n        ) {\r\n            return _evmReward;\r\n        }\r\n        catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        }\r\n        catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\core\\base\\WitOracleBaseQueriableTrustless.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/base/WitOracleBaseQueriableTrustless.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "Escrowable": [
        45618
      ],
      "IERC20": [
        493
      ],
      "IWitAppliance": [
        26514
      ],
      "IWitOracle": [
        26581
      ],
      "IWitOracleAppliance": [
        26593
      ],
      "IWitOracleLegacy": [
        28786
      ],
      "IWitOracleQueriable": [
        26795
      ],
      "IWitOracleQueriableConsumer": [
        26815
      ],
      "IWitOracleQueriableEvents": [
        26892
      ],
      "IWitOracleQueriableExperimental": [
        26964
      ],
      "IWitOracleQueriableTrustableReporter": [
        27056
      ],
      "IWitOracleQueriableTrustlessReporter": [
        27125
      ],
      "IWitOracleRadonRegistry": [
        27394
      ],
      "IWitOracleRadonRegistryEvents": [
        27414
      ],
      "IWitOracleRequest": [
        28922
      ],
      "IWitOracleRequestTemplate": [
        29115
      ],
      "IWitOracleTrustableAdmin": [
        27628
      ],
      "IWitOracleTrustless": [
        27689
      ],
      "Payable": [
        45766
      ],
      "Secp256k1": [
        32535
      ],
      "WitOracle": [
        678
      ],
      "WitOracleBasePushOnly": [
        9455
      ],
      "WitOracleBaseQueriable": [
        11059
      ],
      "WitOracleBaseQueriableTrustless": [
        13608
      ],
      "WitOracleDataLib": [
        20110
      ],
      "WitOraclePushOnly": [
        701
      ],
      "WitOracleRadonRegistry": [
        726
      ],
      "WitOracleResultStatusLib": [
        37119
      ],
      "WitOracleTrustlessDataLib": [
        22249
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 13609,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12529,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:33"
      },
      {
        "absolutePath": "project:/contracts/core/base/WitOracleBaseQueriable.sol",
        "file": "./WitOracleBaseQueriable.sol",
        "id": 12530,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 13609,
        "sourceUnit": 11060,
        "src": "70:38:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitOracleTrustlessDataLib.sol",
        "file": "../../data/WitOracleTrustlessDataLib.sol",
        "id": 12531,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 13609,
        "sourceUnit": 22250,
        "src": "110:50:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracleTrustless.sol",
        "file": "../../interfaces/IWitOracleTrustless.sol",
        "id": 12532,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 13609,
        "sourceUnit": 27690,
        "src": "162:50:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracleQueriableTrustlessReporter.sol",
        "file": "../../interfaces/IWitOracleQueriableTrustlessReporter.sol",
        "id": 12533,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 13609,
        "sourceUnit": 27126,
        "src": "214:67:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Escrowable.sol",
        "file": "../../patterns/Escrowable.sol",
        "id": 12534,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 13609,
        "sourceUnit": 45619,
        "src": "283:39:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 12536,
              "name": "Escrowable",
              "nameLocations": [
                "494:10:33"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45618,
              "src": "494:10:33"
            },
            "id": 12537,
            "nodeType": "InheritanceSpecifier",
            "src": "494:10:33"
          },
          {
            "baseName": {
              "id": 12538,
              "name": "WitOracleBaseQueriable",
              "nameLocations": [
                "515:22:33"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 11059,
              "src": "515:22:33"
            },
            "id": 12539,
            "nodeType": "InheritanceSpecifier",
            "src": "515:22:33"
          },
          {
            "baseName": {
              "id": 12540,
              "name": "IWitOracleTrustless",
              "nameLocations": [
                "548:19:33"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27689,
              "src": "548:19:33"
            },
            "id": 12541,
            "nodeType": "InheritanceSpecifier",
            "src": "548:19:33"
          },
          {
            "baseName": {
              "id": 12542,
              "name": "IWitOracleQueriableTrustlessReporter",
              "nameLocations": [
                "578:36:33"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27125,
              "src": "578:36:33"
            },
            "id": 12543,
            "nodeType": "InheritanceSpecifier",
            "src": "578:36:33"
          }
        ],
        "canonicalName": "WitOracleBaseQueriableTrustless",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 12535,
          "nodeType": "StructuredDocumentation",
          "src": "326:100:33",
          "text": "@title Queriable WitOracle \"trustless\" base implementation.\n @author The Witnet Foundation"
        },
        "fullyImplemented": false,
        "id": 13608,
        "linearizedBaseContracts": [
          13608,
          27125,
          27689,
          11059,
          678,
          26892,
          26795,
          26581,
          26514,
          45618,
          45766
        ],
        "name": "WitOracleBaseQueriableTrustless",
        "nameLocation": "444:31:33",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 12547,
            "libraryName": {
              "id": 12544,
              "name": "Witnet",
              "nameLocations": [
                "629:6:33"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "629:6:33"
            },
            "nodeType": "UsingForDirective",
            "src": "623:39:33",
            "typeName": {
              "id": 12546,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 12545,
                "name": "Witnet.DataPullReport",
                "nameLocations": [
                  "640:6:33",
                  "647:14:33"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37259,
                "src": "640:21:33"
              },
              "referencedDeclaration": 37259,
              "src": "640:21:33",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                "typeString": "struct Witnet.DataPullReport"
              }
            }
          },
          {
            "global": false,
            "id": 12551,
            "libraryName": {
              "id": 12548,
              "name": "WitOracleTrustlessDataLib",
              "nameLocations": [
                "674:25:33"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 22249,
              "src": "674:25:33"
            },
            "nodeType": "UsingForDirective",
            "src": "668:59:33",
            "typeName": {
              "id": 12550,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 12549,
                "name": "WitOracleDataLib.Query",
                "nameLocations": [
                  "704:16:33",
                  "721:5:33"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 18074,
                "src": "704:22:33"
              },
              "referencedDeclaration": 18074,
              "src": "704:22:33",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                "typeString": "struct WitOracleDataLib.Query"
              }
            }
          },
          {
            "constant": false,
            "documentation": {
              "id": 12552,
              "nodeType": "StructuredDocumentation",
              "src": "735:94:33",
              "text": "@notice Number of blocks to await for either a dispute or a proven response to some query."
            },
            "functionSelector": "1105c863",
            "id": 12554,
            "mutability": "immutable",
            "name": "QUERY_AWAITING_BLOCKS",
            "nameLocation": "860:21:33",
            "nodeType": "VariableDeclaration",
            "scope": 13608,
            "src": "835:46:33",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 12553,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "835:7:33",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "documentation": {
              "id": 12555,
              "nodeType": "StructuredDocumentation",
              "src": "890:78:33",
              "text": "@notice Amount in wei to be staked upon reporting or disputing some query."
            },
            "functionSelector": "a6ef08c0",
            "id": 12557,
            "mutability": "immutable",
            "name": "QUERY_REPORTING_STAKE",
            "nameLocation": "999:21:33",
            "nodeType": "VariableDeclaration",
            "scope": 13608,
            "src": "974:46:33",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 12556,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "974:7:33",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "baseModifiers": [
              10153
            ],
            "body": {
              "id": 12589,
              "nodeType": "Block",
              "src": "1109:219:33",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 12566,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 12564,
                      "name": "_msgValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12559,
                      "src": "1124:9:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 12565,
                      "name": "_baseFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12561,
                      "src": "1136:8:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1124:20:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12580,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 12576,
                        "name": "_msgValue",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12559,
                        "src": "1233:9:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 12579,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 12577,
                          "name": "_baseFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12561,
                          "src": "1245:8:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "*",
                        "rightExpression": {
                          "hexValue": "3130",
                          "id": 12578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1256:2:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_10_by_1",
                            "typeString": "int_const 10"
                          },
                          "value": "10"
                        },
                        "src": "1245:13:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1233:25:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "id": 12586,
                    "nodeType": "IfStatement",
                    "src": "1229:86:33",
                    "trueBody": {
                      "id": 12585,
                      "nodeType": "Block",
                      "src": "1260:55:33",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "hexValue": "746f6f206d75636820726577617264",
                                "id": 12582,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1283:17:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_1e72323f1f3aed87187c51f7663ef391bcf1d8bdc45294b783e13ae4d87c075e",
                                  "typeString": "literal_string \"too much reward\""
                                },
                                "value": "too much reward"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_1e72323f1f3aed87187c51f7663ef391bcf1d8bdc45294b783e13ae4d87c075e",
                                  "typeString": "literal_string \"too much reward\""
                                }
                              ],
                              "id": 12581,
                              "name": "_revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26513,
                              "src": "1275:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (string memory) view"
                              }
                            },
                            "id": 12583,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1275:26:33",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 12584,
                          "nodeType": "ExpressionStatement",
                          "src": "1275:26:33"
                        }
                      ]
                    }
                  },
                  "id": 12587,
                  "nodeType": "IfStatement",
                  "src": "1120:195:33",
                  "trueBody": {
                    "id": 12575,
                    "nodeType": "Block",
                    "src": "1146:77:33",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 12568,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967281,
                                "src": "1168:3:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 12569,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1172:6:33",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "1168:10:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 12572,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 12570,
                                "name": "_baseFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12561,
                                "src": "1180:8:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "id": 12571,
                                "name": "_msgValue",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12559,
                                "src": "1191:9:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1180:20:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 12567,
                            "name": "__burn",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12744
                            ],
                            "referencedDeclaration": 12744,
                            "src": "1161:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256)"
                            }
                          },
                          "id": 12573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1161:40:33",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 12574,
                        "nodeType": "ExpressionStatement",
                        "src": "1161:40:33"
                      }
                    ]
                  }
                },
                {
                  "id": 12588,
                  "nodeType": "PlaceholderStatement",
                  "src": "1316:1:33"
                }
              ]
            },
            "id": 12590,
            "name": "checkQueryReward",
            "nameLocation": "1038:16:33",
            "nodeType": "ModifierDefinition",
            "overrides": {
              "id": 12563,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1100:8:33"
            },
            "parameters": {
              "id": 12562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12559,
                  "mutability": "mutable",
                  "name": "_msgValue",
                  "nameLocation": "1063:9:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12590,
                  "src": "1055:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12558,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1055:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12561,
                  "mutability": "mutable",
                  "name": "_baseFee",
                  "nameLocation": "1082:8:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12590,
                  "src": "1074:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12560,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1074:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1054:37:33"
            },
            "src": "1029:299:33",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12657,
              "nodeType": "Block",
              "src": "1479:1152:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 12606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 12604,
                          "name": "_queryAwaitingBlocks",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12592,
                          "src": "1499:20:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "hexValue": "3634",
                          "id": 12605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1522:2:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_64_by_1",
                            "typeString": "int_const 64"
                          },
                          "value": "64"
                        },
                        "src": "1499:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "746f6f206d616e79206177616974696e6720626c6f636b73",
                        "id": 12607,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1526:26:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_078f20940d982e29524b49938bc72a2cc114870f019f2eee55a04f1ba66060f3",
                          "typeString": "literal_string \"too many awaiting blocks\""
                        },
                        "value": "too many awaiting blocks"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_078f20940d982e29524b49938bc72a2cc114870f019f2eee55a04f1ba66060f3",
                          "typeString": "literal_string \"too many awaiting blocks\""
                        }
                      ],
                      "id": 12603,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1490:8:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 12608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1490:63:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12609,
                  "nodeType": "ExpressionStatement",
                  "src": "1490:63:33"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 12613,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 12611,
                          "name": "_queryReportingStake",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12594,
                          "src": "1573:20:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 12612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1596:1:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1573:24:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "6e6f207265706f7274696e67207374616b653f",
                        "id": 12614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1599:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3699f02eb2afbc74c002ed05ea8449a0311fb8085eeb8dbdf0ca1af5a3dfad67",
                          "typeString": "literal_string \"no reporting stake?\""
                        },
                        "value": "no reporting stake?"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3699f02eb2afbc74c002ed05ea8449a0311fb8085eeb8dbdf0ca1af5a3dfad67",
                          "typeString": "literal_string \"no reporting stake?\""
                        }
                      ],
                      "id": 12610,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "1564:8:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 12615,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1564:57:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12616,
                  "nodeType": "ExpressionStatement",
                  "src": "1564:57:33"
                },
                {
                  "expression": {
                    "id": 12619,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 12617,
                      "name": "QUERY_AWAITING_BLOCKS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12554,
                      "src": "1642:21:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 12618,
                      "name": "_queryAwaitingBlocks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12592,
                      "src": "1666:20:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1642:44:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12620,
                  "nodeType": "ExpressionStatement",
                  "src": "1642:44:33"
                },
                {
                  "expression": {
                    "id": 12623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 12621,
                      "name": "QUERY_REPORTING_STAKE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12557,
                      "src": "1697:21:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 12622,
                      "name": "_queryReportingStake",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12594,
                      "src": "1721:20:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1697:44:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12624,
                  "nodeType": "ExpressionStatement",
                  "src": "1697:44:33"
                },
                {
                  "expression": {
                    "id": 12655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 12625,
                              "name": "WitOracleTrustlessDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22249,
                              "src": "1788:25:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 12627,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1814:4:33",
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 20309,
                            "src": "1788:30:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$20300_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitOracleTrustlessDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 12628,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1788:32:33",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$20300_storage_ptr",
                            "typeString": "struct WitOracleTrustlessDataLib.Storage storage pointer"
                          }
                        },
                        "id": 12629,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1821:7:33",
                        "memberName": "beacons",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 20294,
                        "src": "1788:40:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Beacon_$37242_storage_$",
                          "typeString": "mapping(uint256 => struct Witnet.Beacon storage ref)"
                        }
                      },
                      "id": 12632,
                      "indexExpression": {
                        "expression": {
                          "id": 12630,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "1843:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 12631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "1850:26:33",
                        "memberName": "WIT_2_GENESIS_BEACON_INDEX",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37168,
                        "src": "1843:33:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1788:99:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Beacon_$37242_storage",
                        "typeString": "struct Witnet.Beacon storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 12635,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "1926:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 12636,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1933:26:33",
                          "memberName": "WIT_2_GENESIS_BEACON_INDEX",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37168,
                          "src": "1926:33:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "expression": {
                            "id": 12637,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "1985:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 12638,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1992:31:33",
                          "memberName": "WIT_2_GENESIS_BEACON_PREV_INDEX",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37171,
                          "src": "1985:38:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "expression": {
                            "id": 12639,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "2048:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 12640,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2055:30:33",
                          "memberName": "WIT_2_GENESIS_BEACON_PREV_ROOT",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37174,
                          "src": "2048:37:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes24",
                            "typeString": "bytes24"
                          }
                        },
                        {
                          "expression": {
                            "id": 12641,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "2122:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 12642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2129:44:33",
                          "memberName": "WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37177,
                          "src": "2122:51:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          }
                        },
                        {
                          "expression": {
                            "id": 12643,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "2210:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 12644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2217:44:33",
                          "memberName": "WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37180,
                          "src": "2210:51:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          }
                        },
                        {
                          "components": [
                            {
                              "expression": {
                                "id": 12645,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "2319:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 12646,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "2326:48:33",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37183,
                              "src": "2319:55:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 12647,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "2393:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 12648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "2400:48:33",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37186,
                              "src": "2393:55:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 12649,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "2467:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 12650,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "2474:48:33",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37189,
                              "src": "2467:55:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 12651,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "2541:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 12652,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "2548:48:33",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37192,
                              "src": "2541:55:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 12653,
                          "isConstant": false,
                          "isInlineArray": true,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2300:311:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                            "typeString": "uint256[4] memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_bytes24",
                            "typeString": "bytes24"
                          },
                          {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          },
                          {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          },
                          {
                            "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                            "typeString": "uint256[4] memory"
                          }
                        ],
                        "expression": {
                          "id": 12633,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "1890:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 12634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1897:6:33",
                        "memberName": "Beacon",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37242,
                        "src": "1890:13:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Beacon_$37242_storage_ptr_$",
                          "typeString": "type(struct Witnet.Beacon storage pointer)"
                        }
                      },
                      "id": 12654,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "1919:5:33",
                        "1974:9:33",
                        "2038:8:33",
                        "2100:20:33",
                        "2188:20:33",
                        "2276:22:33"
                      ],
                      "names": [
                        "index",
                        "prevIndex",
                        "prevRoot",
                        "ddrTalliesMerkleRoot",
                        "droTalliesMerkleRoot",
                        "nextCommitteeAggPubkey"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "1890:733:33",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                        "typeString": "struct Witnet.Beacon memory"
                      }
                    },
                    "src": "1788:835:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage",
                      "typeString": "struct Witnet.Beacon storage ref"
                    }
                  },
                  "id": 12656,
                  "nodeType": "ExpressionStatement",
                  "src": "1788:835:33"
                }
              ]
            },
            "id": 12658,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "arguments": [
                      {
                        "hexValue": "30",
                        "id": 12599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1470:1:33",
                        "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": 12598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1462:7:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 12597,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1462:7:33",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 12600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1462:10:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 12601,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 12596,
                  "name": "Payable",
                  "nameLocations": [
                    "1454:7:33"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45766,
                  "src": "1454:7:33"
                },
                "nodeType": "ModifierInvocation",
                "src": "1454:19:33"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12595,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12592,
                  "mutability": "mutable",
                  "name": "_queryAwaitingBlocks",
                  "nameLocation": "1370:20:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12658,
                  "src": "1362:28:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12591,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1362:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12594,
                  "mutability": "mutable",
                  "name": "_queryReportingStake",
                  "nameLocation": "1413:20:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12658,
                  "src": "1405:28:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12593,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1405:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1347:97:33"
            },
            "returnParameters": {
              "id": 12602,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1479:0:33"
            },
            "scope": 13608,
            "src": "1336:1295:33",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45561
            ],
            "body": {
              "id": 12669,
              "nodeType": "Block",
              "src": "2932:56:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 12663,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2953:3:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12664,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2957:6:33",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2953:10:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12665,
                          "name": "_getMsgValue",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            10319
                          ],
                          "referencedDeclaration": 10319,
                          "src": "2965:12:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 12666,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2965:14:33",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12662,
                      "name": "__deposit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12760
                      ],
                      "referencedDeclaration": 12760,
                      "src": "2943:9:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 12667,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2943:37:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12668,
                  "nodeType": "ExpressionStatement",
                  "src": "2943:37:33"
                }
              ]
            },
            "id": 12670,
            "implemented": true,
            "kind": "receive",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12660,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2923:8:33"
            },
            "parameters": {
              "id": 12659,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2895:2:33"
            },
            "returnParameters": {
              "id": 12661,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2932:0:33"
            },
            "scope": 13608,
            "src": "2888:100:33",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              45568
            ],
            "body": {
              "id": 12686,
              "nodeType": "Block",
              "src": "3113:85:33",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 12678,
                              "name": "WitOracleTrustlessDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22249,
                              "src": "3131:25:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 12679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3157:4:33",
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 20309,
                            "src": "3131:30:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$20300_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitOracleTrustlessDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 12680,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3131:32:33",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$20300_storage_ptr",
                            "typeString": "struct WitOracleTrustlessDataLib.Storage storage pointer"
                          }
                        },
                        "id": 12681,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3164:7:33",
                        "memberName": "escrows",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 20299,
                        "src": "3131:40:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Escrow_$45558_storage_$",
                          "typeString": "mapping(address => struct Escrowable.Escrow storage ref)"
                        }
                      },
                      "id": 12683,
                      "indexExpression": {
                        "id": 12682,
                        "name": "tenant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12672,
                        "src": "3172:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3131:48:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Escrow_$45558_storage",
                        "typeString": "struct Escrowable.Escrow storage ref"
                      }
                    },
                    "id": 12684,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3180:10:33",
                    "memberName": "collateral",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 45557,
                    "src": "3131:59:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 12677,
                  "id": 12685,
                  "nodeType": "Return",
                  "src": "3124:66:33"
                }
              ]
            },
            "functionSelector": "1aefb107",
            "id": 12687,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "collateralOf",
            "nameLocation": "3005:12:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12674,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3072:8:33"
            },
            "parameters": {
              "id": 12673,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12672,
                  "mutability": "mutable",
                  "name": "tenant",
                  "nameLocation": "3026:6:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12687,
                  "src": "3018:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12671,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3018:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3017:16:33"
            },
            "returnParameters": {
              "id": 12677,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12676,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12687,
                  "src": "3099:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12675,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3099:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3098:9:33"
            },
            "scope": 13608,
            "src": "2996:202:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              45575
            ],
            "body": {
              "id": 12703,
              "nodeType": "Block",
              "src": "3320:82:33",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 12695,
                              "name": "WitOracleTrustlessDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22249,
                              "src": "3338:25:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 12696,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3364:4:33",
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 20309,
                            "src": "3338:30:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$20300_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitOracleTrustlessDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 12697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3338:32:33",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$20300_storage_ptr",
                            "typeString": "struct WitOracleTrustlessDataLib.Storage storage pointer"
                          }
                        },
                        "id": 12698,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3371:7:33",
                        "memberName": "escrows",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 20299,
                        "src": "3338:40:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Escrow_$45558_storage_$",
                          "typeString": "mapping(address => struct Escrowable.Escrow storage ref)"
                        }
                      },
                      "id": 12700,
                      "indexExpression": {
                        "id": 12699,
                        "name": "tenant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12689,
                        "src": "3379:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3338:48:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Escrow_$45558_storage",
                        "typeString": "struct Escrowable.Escrow storage ref"
                      }
                    },
                    "id": 12701,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3387:7:33",
                    "memberName": "balance",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 45555,
                    "src": "3338:56:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 12694,
                  "id": 12702,
                  "nodeType": "Return",
                  "src": "3331:63:33"
                }
              ]
            },
            "functionSelector": "70a08231",
            "id": 12704,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nameLocation": "3215:9:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12691,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3279:8:33"
            },
            "parameters": {
              "id": 12690,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12689,
                  "mutability": "mutable",
                  "name": "tenant",
                  "nameLocation": "3233:6:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12704,
                  "src": "3225:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12688,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3225:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3224:16:33"
            },
            "returnParameters": {
              "id": 12694,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12693,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12704,
                  "src": "3306:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12692,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3306:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3305:9:33"
            },
            "scope": 13608,
            "src": "3206:196:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              45580
            ],
            "body": {
              "id": 12727,
              "nodeType": "Block",
              "src": "3517:176:33",
              "statements": [
                {
                  "expression": {
                    "id": 12716,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 12710,
                      "name": "_withdrawn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12708,
                      "src": "3528:10:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 12713,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967281,
                            "src": "3576:3:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 12714,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3580:6:33",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "3576:10:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "id": 12711,
                          "name": "WitOracleTrustlessDataLib",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22249,
                          "src": "3541:25:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                            "typeString": "type(library WitOracleTrustlessDataLib)"
                          }
                        },
                        "id": 12712,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3567:8:33",
                        "memberName": "withdraw",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 20565,
                        "src": "3541:34:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (address) returns (uint256)"
                        }
                      },
                      "id": 12715,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3541:46:33",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3528:59:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12717,
                  "nodeType": "ExpressionStatement",
                  "src": "3528:59:33"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 12721,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "3637:3:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 12722,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3641:6:33",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "3637:10:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 12720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3629:8:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_payable_$",
                            "typeString": "type(address payable)"
                          },
                          "typeName": {
                            "id": 12719,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3629:8:33",
                            "stateMutability": "payable",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 12723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3629:19:33",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "id": 12724,
                        "name": "_withdrawn",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12708,
                        "src": "3664:10:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12718,
                      "name": "__safeTransferTo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10337
                      ],
                      "referencedDeclaration": 10337,
                      "src": "3598:16:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
                        "typeString": "function (address payable,uint256)"
                      }
                    },
                    "id": 12725,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3598:87:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12726,
                  "nodeType": "ExpressionStatement",
                  "src": "3598:87:33"
                }
              ]
            },
            "functionSelector": "3ccfd60b",
            "id": 12728,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "withdraw",
            "nameLocation": "3419:8:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12706,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3465:8:33"
            },
            "parameters": {
              "id": 12705,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3427:2:33"
            },
            "returnParameters": {
              "id": 12709,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12708,
                  "mutability": "mutable",
                  "name": "_withdrawn",
                  "nameLocation": "3500:10:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12728,
                  "src": "3492:18:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12707,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3492:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3491:20:33"
            },
            "scope": 13608,
            "src": "3410:283:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              45587
            ],
            "body": {
              "id": 12743,
              "nodeType": "Block",
              "src": "3796:62:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12739,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12730,
                        "src": "3838:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12740,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12732,
                        "src": "3844:5:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 12736,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "3807:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12738,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3833:4:33",
                      "memberName": "burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20346,
                      "src": "3807:30:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 12741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3807:43:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12742,
                  "nodeType": "ExpressionStatement",
                  "src": "3807:43:33"
                }
              ]
            },
            "id": 12744,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__burn",
            "nameLocation": "3710:6:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12734,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3764:8:33"
            },
            "parameters": {
              "id": 12733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12730,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "3725:4:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12744,
                  "src": "3717:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12729,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3717:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12732,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "3739:5:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12744,
                  "src": "3731:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3731:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3716:29:33"
            },
            "returnParameters": {
              "id": 12735,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3796:0:33"
            },
            "scope": 13608,
            "src": "3701:157:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45594
            ],
            "body": {
              "id": 12759,
              "nodeType": "Block",
              "src": "3963:65:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12755,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12746,
                        "src": "4008:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12756,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12748,
                        "src": "4014:5:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 12752,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "3974:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12754,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4000:7:33",
                      "memberName": "deposit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20370,
                      "src": "3974:33:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 12757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3974:46:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12758,
                  "nodeType": "ExpressionStatement",
                  "src": "3974:46:33"
                }
              ]
            },
            "id": 12760,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__deposit",
            "nameLocation": "3875:9:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12750,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3931:8:33"
            },
            "parameters": {
              "id": 12749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12746,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "3893:4:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12760,
                  "src": "3885:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12745,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3885:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12748,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "3907:5:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12760,
                  "src": "3899:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12747,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3899:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3884:29:33"
            },
            "returnParameters": {
              "id": 12751,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3963:0:33"
            },
            "scope": 13608,
            "src": "3866:162:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45610
            ],
            "body": {
              "id": 12775,
              "nodeType": "Block",
              "src": "4131:63:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12771,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12762,
                        "src": "4174:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12772,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12764,
                        "src": "4180:5:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 12768,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "4142:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4168:5:33",
                      "memberName": "stake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20416,
                      "src": "4142:31:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 12773,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4142:44:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12774,
                  "nodeType": "ExpressionStatement",
                  "src": "4142:44:33"
                }
              ]
            },
            "id": 12776,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__stake",
            "nameLocation": "4045:7:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12766,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4099:8:33"
            },
            "parameters": {
              "id": 12765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12762,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "4061:4:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12776,
                  "src": "4053:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12761,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4053:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12764,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4075:5:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12776,
                  "src": "4067:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12763,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4067:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4052:29:33"
            },
            "returnParameters": {
              "id": 12767,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4131:0:33"
            },
            "scope": 13608,
            "src": "4036:158:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45603
            ],
            "body": {
              "id": 12794,
              "nodeType": "Block",
              "src": "4309:67:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12789,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12778,
                        "src": "4352:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12790,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12780,
                        "src": "4358:2:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12791,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12782,
                        "src": "4362:5:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 12786,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "4320:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4346:5:33",
                      "memberName": "slash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20482,
                      "src": "4320:31:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 12792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4320:48:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12793,
                  "nodeType": "ExpressionStatement",
                  "src": "4320:48:33"
                }
              ]
            },
            "id": 12795,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__slash",
            "nameLocation": "4211:7:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12784,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4277:8:33"
            },
            "parameters": {
              "id": 12783,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12778,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "4227:4:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12795,
                  "src": "4219:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12777,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4219:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12780,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "4241:2:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12795,
                  "src": "4233:10:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4233:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12782,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4253:5:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12795,
                  "src": "4245:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12781,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4245:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4218:41:33"
            },
            "returnParameters": {
              "id": 12785,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4309:0:33"
            },
            "scope": 13608,
            "src": "4202:174:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45617
            ],
            "body": {
              "id": 12810,
              "nodeType": "Block",
              "src": "4481:65:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12806,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12797,
                        "src": "4526:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12807,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12799,
                        "src": "4532:5:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 12803,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "4492:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4518:7:33",
                      "memberName": "unstake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20528,
                      "src": "4492:33:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 12808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4492:46:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12809,
                  "nodeType": "ExpressionStatement",
                  "src": "4492:46:33"
                }
              ]
            },
            "id": 12811,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__unstake",
            "nameLocation": "4393:9:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12801,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4449:8:33"
            },
            "parameters": {
              "id": 12800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12797,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "4411:4:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12811,
                  "src": "4403:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12796,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4403:7:33",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12799,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "4425:5:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12811,
                  "src": "4417:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12798,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4417:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4402:29:33"
            },
            "returnParameters": {
              "id": 12802,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4481:0:33"
            },
            "scope": 13608,
            "src": "4384:162:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26561
            ],
            "body": {
              "id": 12877,
              "nodeType": "Block",
              "src": "4995:625:33",
              "statements": [
                {
                  "assignments": [
                    12828,
                    12831
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12828,
                      "mutability": "mutable",
                      "name": "_rollup",
                      "nameLocation": "5035:7:33",
                      "nodeType": "VariableDeclaration",
                      "scope": 12877,
                      "src": "5007:35:33",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct Witnet.FastForward[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 12826,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 12825,
                            "name": "Witnet.FastForward",
                            "nameLocations": [
                              "5007:6:33",
                              "5014:11:33"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 37306,
                            "src": "5007:18:33"
                          },
                          "referencedDeclaration": 37306,
                          "src": "5007:18:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                            "typeString": "struct Witnet.FastForward"
                          }
                        },
                        "id": 12827,
                        "nodeType": "ArrayTypeName",
                        "src": "5007:20:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                          "typeString": "struct Witnet.FastForward[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 12831,
                      "mutability": "mutable",
                      "name": "_merkle",
                      "nameLocation": "5061:7:33",
                      "nodeType": "VariableDeclaration",
                      "scope": 12877,
                      "src": "5044:24:33",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 12829,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "5044:7:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 12830,
                        "nodeType": "ArrayTypeName",
                        "src": "5044:9:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 12843,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 12834,
                        "name": "_proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12816,
                        "src": "5097:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "expression": {
                                "id": 12835,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "5120:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 12836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5127:11:33",
                              "memberName": "FastForward",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37306,
                              "src": "5120:18:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_FastForward_$37306_storage_ptr_$",
                                "typeString": "type(struct Witnet.FastForward storage pointer)"
                              }
                            },
                            "id": 12837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5120:20:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$",
                              "typeString": "type(struct Witnet.FastForward memory[] memory)"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 12839,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5142:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12838,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5142:7:33",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 12840,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5142:9:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 12841,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5119:33:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_type$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$",
                          "typeString": "tuple(type(struct Witnet.FastForward memory[] memory),type(bytes32[] memory))"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_tuple$_t_type$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$",
                          "typeString": "tuple(type(struct Witnet.FastForward memory[] memory),type(bytes32[] memory))"
                        }
                      ],
                      "expression": {
                        "id": 12832,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "5072:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 12833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "5076:6:33",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "5072:10:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 12842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5072:91:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                      "typeString": "tuple(struct Witnet.FastForward memory[] memory,bytes32[] memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5006:157:33"
                },
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 12856,
                        "nodeType": "Block",
                        "src": "5391:56:33",
                        "statements": [
                          {
                            "expression": {
                              "id": 12854,
                              "name": "_queryResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12852,
                              "src": "5413:12:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "functionReturnParameters": 12822,
                            "id": 12855,
                            "nodeType": "Return",
                            "src": "5406:19:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 12857,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12853,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12852,
                            "mutability": "mutable",
                            "name": "_queryResult",
                            "nameLocation": "5367:12:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 12857,
                            "src": "5342:37:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                              "typeString": "struct Witnet.DataResult"
                            },
                            "typeName": {
                              "id": 12851,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 12850,
                                "name": "Witnet.DataResult",
                                "nameLocations": [
                                  "5342:6:33",
                                  "5349:10:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37293,
                                "src": "5342:17:33"
                              },
                              "referencedDeclaration": 37293,
                              "src": "5342:17:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                                "typeString": "struct Witnet.DataResult"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "5327:63:33"
                      },
                      "src": "5319:128:33"
                    },
                    {
                      "block": {
                        "id": 12865,
                        "nodeType": "Block",
                        "src": "5483:52:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 12862,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12859,
                                  "src": "5505:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 12861,
                                "name": "revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  4294967277,
                                  4294967277
                                ],
                                "referencedDeclaration": 4294967277,
                                "src": "5498:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) pure"
                                }
                              },
                              "id": 12863,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5498:15:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 12864,
                            "nodeType": "ExpressionStatement",
                            "src": "5498:15:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 12866,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12860,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12859,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "5474:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 12866,
                            "src": "5460:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 12858,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "5460:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "5459:23:33"
                      },
                      "src": "5448:87:33"
                    },
                    {
                      "block": {
                        "id": 12874,
                        "nodeType": "Block",
                        "src": "5557:56:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "hexValue": "756e68616e646c656420617373657274696f6e",
                                  "id": 12871,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5579:21:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_c46691ace804484695f22ef6485c1e77a42000e038b1d2106e10fef498400edc",
                                    "typeString": "literal_string \"unhandled assertion\""
                                  },
                                  "value": "unhandled assertion"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_c46691ace804484695f22ef6485c1e77a42000e038b1d2106e10fef498400edc",
                                    "typeString": "literal_string \"unhandled assertion\""
                                  }
                                ],
                                "id": 12870,
                                "name": "revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  4294967277,
                                  4294967277
                                ],
                                "referencedDeclaration": 4294967277,
                                "src": "5572:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) pure"
                                }
                              },
                              "id": 12872,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5572:29:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 12873,
                            "nodeType": "ExpressionStatement",
                            "src": "5572:29:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 12875,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12869,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12868,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 12875,
                            "src": "5543:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 12867,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "5543:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "5542:14:33"
                      },
                      "src": "5536:77:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 12846,
                        "name": "_dataPushReport",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12814,
                        "src": "5238:15:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        }
                      },
                      {
                        "id": 12847,
                        "name": "_rollup",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12828,
                        "src": "5268:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct Witnet.FastForward memory[] memory"
                        }
                      },
                      {
                        "id": 12848,
                        "name": "_merkle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12831,
                        "src": "5290:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct Witnet.FastForward memory[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "expression": {
                        "id": 12844,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "5178:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5204:19:33",
                      "memberName": "parseDataPushReport",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 21924,
                      "src": "5178:45:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_DataPushReport_$37274_memory_ptr_$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "function (struct Witnet.DataPushReport memory,struct Witnet.FastForward memory[] memory,bytes32[] memory) view returns (struct Witnet.DataResult memory)"
                      }
                    },
                    "id": 12849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5178:140:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "id": 12876,
                  "nodeType": "TryStatement",
                  "src": "5174:439:33"
                }
              ]
            },
            "functionSelector": "b783922b",
            "id": 12878,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "parseDataReport",
            "nameLocation": "4809:15:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12818,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4913:8:33"
            },
            "parameters": {
              "id": 12817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12814,
                  "mutability": "mutable",
                  "name": "_dataPushReport",
                  "nameLocation": "4856:15:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12878,
                  "src": "4825:46:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 12813,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12812,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "4825:6:33",
                        "4832:14:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "4825:21:33"
                    },
                    "referencedDeclaration": 37274,
                    "src": "4825:21:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12816,
                  "mutability": "mutable",
                  "name": "_proof",
                  "nameLocation": "4888:6:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12878,
                  "src": "4873:21:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 12815,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4873:5:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4824:71:33"
            },
            "returnParameters": {
              "id": 12822,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12821,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12878,
                  "src": "4964:24:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 12820,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12819,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "4964:6:33",
                        "4971:10:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "4964:17:33"
                    },
                    "referencedDeclaration": 37293,
                    "src": "4964:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4963:26:33"
            },
            "scope": 13608,
            "src": "4800:820:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26573
            ],
            "body": {
              "id": 12944,
              "nodeType": "Block",
              "src": "5807:626:33",
              "statements": [
                {
                  "assignments": [
                    12895,
                    12898
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12895,
                      "mutability": "mutable",
                      "name": "_rollup",
                      "nameLocation": "5847:7:33",
                      "nodeType": "VariableDeclaration",
                      "scope": 12944,
                      "src": "5819:35:33",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct Witnet.FastForward[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 12893,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 12892,
                            "name": "Witnet.FastForward",
                            "nameLocations": [
                              "5819:6:33",
                              "5826:11:33"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 37306,
                            "src": "5819:18:33"
                          },
                          "referencedDeclaration": 37306,
                          "src": "5819:18:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                            "typeString": "struct Witnet.FastForward"
                          }
                        },
                        "id": 12894,
                        "nodeType": "ArrayTypeName",
                        "src": "5819:20:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                          "typeString": "struct Witnet.FastForward[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 12898,
                      "mutability": "mutable",
                      "name": "_merkle",
                      "nameLocation": "5873:7:33",
                      "nodeType": "VariableDeclaration",
                      "scope": 12944,
                      "src": "5856:24:33",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 12896,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "5856:7:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 12897,
                        "nodeType": "ArrayTypeName",
                        "src": "5856:9:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 12910,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 12901,
                        "name": "_proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12883,
                        "src": "5909:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "expression": {
                                "id": 12902,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "5932:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 12903,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5939:11:33",
                              "memberName": "FastForward",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37306,
                              "src": "5932:18:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_FastForward_$37306_storage_ptr_$",
                                "typeString": "type(struct Witnet.FastForward storage pointer)"
                              }
                            },
                            "id": 12904,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5932:20:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$",
                              "typeString": "type(struct Witnet.FastForward memory[] memory)"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 12906,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5954:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 12905,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5954:7:33",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 12907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5954:9:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          }
                        ],
                        "id": 12908,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5931:33:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_type$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$",
                          "typeString": "tuple(type(struct Witnet.FastForward memory[] memory),type(bytes32[] memory))"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_tuple$_t_type$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$",
                          "typeString": "tuple(type(struct Witnet.FastForward memory[] memory),type(bytes32[] memory))"
                        }
                      ],
                      "expression": {
                        "id": 12899,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "5884:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 12900,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "5888:6:33",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "5884:10:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 12909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5884:91:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                      "typeString": "tuple(struct Witnet.FastForward memory[] memory,bytes32[] memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5818:157:33"
                },
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 12923,
                        "nodeType": "Block",
                        "src": "6204:56:33",
                        "statements": [
                          {
                            "expression": {
                              "id": 12921,
                              "name": "_queryResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12919,
                              "src": "6226:12:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "functionReturnParameters": 12889,
                            "id": 12922,
                            "nodeType": "Return",
                            "src": "6219:19:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 12924,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12920,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12919,
                            "mutability": "mutable",
                            "name": "_queryResult",
                            "nameLocation": "6180:12:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 12924,
                            "src": "6155:37:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                              "typeString": "struct Witnet.DataResult"
                            },
                            "typeName": {
                              "id": 12918,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 12917,
                                "name": "Witnet.DataResult",
                                "nameLocations": [
                                  "6155:6:33",
                                  "6162:10:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37293,
                                "src": "6155:17:33"
                              },
                              "referencedDeclaration": 37293,
                              "src": "6155:17:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                                "typeString": "struct Witnet.DataResult"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "6140:63:33"
                      },
                      "src": "6132:128:33"
                    },
                    {
                      "block": {
                        "id": 12932,
                        "nodeType": "Block",
                        "src": "6296:52:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 12929,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12926,
                                  "src": "6318:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 12928,
                                "name": "revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  4294967277,
                                  4294967277
                                ],
                                "referencedDeclaration": 4294967277,
                                "src": "6311:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) pure"
                                }
                              },
                              "id": 12930,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6311:15:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 12931,
                            "nodeType": "ExpressionStatement",
                            "src": "6311:15:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 12933,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12927,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12926,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "6287:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 12933,
                            "src": "6273:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 12925,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "6273:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "6272:23:33"
                      },
                      "src": "6261:87:33"
                    },
                    {
                      "block": {
                        "id": 12941,
                        "nodeType": "Block",
                        "src": "6370:56:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "hexValue": "756e68616e646c656420617373657274696f6e",
                                  "id": 12938,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6392:21:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_c46691ace804484695f22ef6485c1e77a42000e038b1d2106e10fef498400edc",
                                    "typeString": "literal_string \"unhandled assertion\""
                                  },
                                  "value": "unhandled assertion"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_c46691ace804484695f22ef6485c1e77a42000e038b1d2106e10fef498400edc",
                                    "typeString": "literal_string \"unhandled assertion\""
                                  }
                                ],
                                "id": 12937,
                                "name": "revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  4294967277,
                                  4294967277
                                ],
                                "referencedDeclaration": 4294967277,
                                "src": "6385:6:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) pure"
                                }
                              },
                              "id": 12939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6385:29:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 12940,
                            "nodeType": "ExpressionStatement",
                            "src": "6385:29:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 12942,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12936,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12935,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 12942,
                            "src": "6356:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 12934,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "6356:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "6355:14:33"
                      },
                      "src": "6349:77:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 12913,
                        "name": "_dataPushReport",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12881,
                        "src": "6051:15:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        }
                      },
                      {
                        "id": 12914,
                        "name": "_rollup",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12895,
                        "src": "6081:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct Witnet.FastForward memory[] memory"
                        }
                      },
                      {
                        "id": 12915,
                        "name": "_merkle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12898,
                        "src": "6103:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct Witnet.FastForward memory[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "expression": {
                        "id": 12911,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "5990:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12912,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6016:20:33",
                      "memberName": "rollupDataPushReport",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22060,
                      "src": "5990:46:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_DataPushReport_$37274_memory_ptr_$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "function (struct Witnet.DataPushReport memory,struct Witnet.FastForward memory[] memory,bytes32[] memory) returns (struct Witnet.DataResult memory)"
                      }
                    },
                    "id": 12916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5990:141:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "id": 12943,
                  "nodeType": "TryStatement",
                  "src": "5986:440:33"
                }
              ]
            },
            "functionSelector": "6d0d6a7e",
            "id": 12945,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pushDataReport",
            "nameLocation": "5637:14:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12885,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5740:8:33"
            },
            "parameters": {
              "id": 12884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12881,
                  "mutability": "mutable",
                  "name": "_dataPushReport",
                  "nameLocation": "5683:15:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12945,
                  "src": "5652:46:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 12880,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12879,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "5652:6:33",
                        "5659:14:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "5652:21:33"
                    },
                    "referencedDeclaration": 37274,
                    "src": "5652:21:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12883,
                  "mutability": "mutable",
                  "name": "_proof",
                  "nameLocation": "5715:6:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 12945,
                  "src": "5700:21:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 12882,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5700:5:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5651:71:33"
            },
            "returnParameters": {
              "id": 12889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12888,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12945,
                  "src": "5776:24:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 12887,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12886,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "5776:6:33",
                        "5783:10:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "5776:17:33"
                    },
                    "referencedDeclaration": 37293,
                    "src": "5776:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5775:26:33"
            },
            "scope": 13608,
            "src": "5628:805:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26618
            ],
            "body": {
              "id": 13009,
              "nodeType": "Block",
              "src": "6998:821:33",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 12989,
                        "nodeType": "Block",
                        "src": "7247:400:33",
                        "statements": [
                          {
                            "assignments": [
                              12966
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 12966,
                                "mutability": "mutable",
                                "name": "_evmPayback",
                                "nameLocation": "7270:11:33",
                                "nodeType": "VariableDeclaration",
                                "scope": 12989,
                                "src": "7262:19:33",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "typeName": {
                                  "id": 12965,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7262:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "visibility": "internal"
                              }
                            ],
                            "id": 12972,
                            "initialValue": {
                              "arguments": [
                                {
                                  "id": 12970,
                                  "name": "_queryReward",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12963,
                                  "src": "7313:12:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                                    "typeString": "Witnet.QueryEvmReward"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                                    "typeString": "Witnet.QueryEvmReward"
                                  }
                                ],
                                "expression": {
                                  "expression": {
                                    "id": 12967,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "7284:6:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 12968,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7291:14:33",
                                  "memberName": "QueryEvmReward",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37147,
                                  "src": "7284:21:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                                    "typeString": "type(Witnet.QueryEvmReward)"
                                  }
                                },
                                "id": 12969,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "7306:6:33",
                                "memberName": "unwrap",
                                "nodeType": "MemberAccess",
                                "src": "7284:28:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryEvmReward_$37147_$returns$_t_uint72_$",
                                  "typeString": "function (Witnet.QueryEvmReward) pure returns (uint72)"
                                }
                              },
                              "id": 12971,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7284:42:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint72",
                                "typeString": "uint72"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "7262:64:33"
                          },
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 12975,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 12973,
                                "name": "_evmPayback",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12966,
                                "src": "7345:11:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 12974,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7359:1:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "7345:15:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 12986,
                            "nodeType": "IfStatement",
                            "src": "7341:251:33",
                            "trueBody": {
                              "id": 12985,
                              "nodeType": "Block",
                              "src": "7362:230:33",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "expression": {
                                              "id": 12979,
                                              "name": "msg",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4294967281,
                                              "src": "7512:3:33",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                              }
                                            },
                                            "id": 12980,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "7516:6:33",
                                            "memberName": "sender",
                                            "nodeType": "MemberAccess",
                                            "src": "7512:10:33",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "id": 12978,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "7504:8:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_payable_$",
                                            "typeString": "type(address payable)"
                                          },
                                          "typeName": {
                                            "id": 12977,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "7504:8:33",
                                            "stateMutability": "payable",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 12981,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7504:19:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      {
                                        "id": 12982,
                                        "name": "_evmPayback",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12966,
                                        "src": "7546:11:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 12976,
                                      "name": "__safeTransferTo",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        10337
                                      ],
                                      "referencedDeclaration": 10337,
                                      "src": "7465:16:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$",
                                        "typeString": "function (address payable,uint256)"
                                      }
                                    },
                                    "id": 12983,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7465:111:33",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 12984,
                                  "nodeType": "ExpressionStatement",
                                  "src": "7465:111:33"
                                }
                              ]
                            }
                          },
                          {
                            "expression": {
                              "id": 12987,
                              "name": "_queryReward",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12963,
                              "src": "7613:12:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                                "typeString": "Witnet.QueryEvmReward"
                              }
                            },
                            "functionReturnParameters": 12954,
                            "id": 12988,
                            "nodeType": "Return",
                            "src": "7606:19:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 12990,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12964,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12963,
                            "mutability": "mutable",
                            "name": "_queryReward",
                            "nameLocation": "7223:12:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 12990,
                            "src": "7201:34:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                              "typeString": "Witnet.QueryEvmReward"
                            },
                            "typeName": {
                              "id": 12962,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 12961,
                                "name": "Witnet.QueryEvmReward",
                                "nameLocations": [
                                  "7201:6:33",
                                  "7208:14:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37147,
                                "src": "7201:21:33"
                              },
                              "referencedDeclaration": 37147,
                              "src": "7201:21:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                                "typeString": "Witnet.QueryEvmReward"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "7186:60:33"
                      },
                      "src": "7178:469:33"
                    },
                    {
                      "block": {
                        "id": 12998,
                        "nodeType": "Block",
                        "src": "7683:53:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 12995,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12992,
                                  "src": "7706:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 12994,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "7698:7:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 12996,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7698:16:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 12997,
                            "nodeType": "ExpressionStatement",
                            "src": "7698:16:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 12999,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 12993,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 12992,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "7674:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 12999,
                            "src": "7660:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 12991,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "7660:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "7659:23:33"
                      },
                      "src": "7648:88:33"
                    },
                    {
                      "block": {
                        "id": 13006,
                        "nodeType": "Block",
                        "src": "7758:54:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 13003,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11028,
                                "src": "7773:25:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 13004,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7773:27:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13005,
                            "nodeType": "ExpressionStatement",
                            "src": "7773:27:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13007,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13002,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13001,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 13007,
                            "src": "7744:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13000,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "7744:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "7743:14:33"
                      },
                      "src": "7737:75:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 12957,
                        "name": "_queryId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12948,
                        "src": "7076:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 12958,
                        "name": "QUERY_AWAITING_BLOCKS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12554,
                        "src": "7099:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 12959,
                        "name": "QUERY_REPORTING_STAKE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12557,
                        "src": "7135:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 12955,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "7013:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 12956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7039:22:33",
                      "memberName": "deleteQueryTrustlessly",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20800,
                      "src": "7013:48:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_QueryEvmReward_$37147_$",
                        "typeString": "function (uint256,uint256,uint256) returns (Witnet.QueryEvmReward)"
                      }
                    },
                    "id": 12960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7013:164:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                      "typeString": "Witnet.QueryEvmReward"
                    }
                  },
                  "id": 13008,
                  "nodeType": "TryStatement",
                  "src": "7009:803:33"
                }
              ]
            },
            "documentation": {
              "id": 12946,
              "nodeType": "StructuredDocumentation",
              "src": "6687:185:33",
              "text": "@notice Removes all query data from storage. Pays back reward on expired queries.\n @dev Fails if the query is not in a final status, or not called from the actual requester."
            },
            "functionSelector": "7c1fbda3",
            "id": 13010,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deleteQuery",
            "nameLocation": "6887:11:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12950,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6934:8:33"
            },
            "parameters": {
              "id": 12949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12948,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "6907:8:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13010,
                  "src": "6899:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12947,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6899:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6898:18:33"
            },
            "returnParameters": {
              "id": 12954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12953,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13010,
                  "src": "6970:21:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                    "typeString": "Witnet.QueryEvmReward"
                  },
                  "typeName": {
                    "id": 12952,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12951,
                      "name": "Witnet.QueryEvmReward",
                      "nameLocations": [
                        "6970:6:33",
                        "6977:14:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37147,
                      "src": "6970:21:33"
                    },
                    "referencedDeclaration": 37147,
                    "src": "6970:21:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryEvmReward_$37147",
                      "typeString": "Witnet.QueryEvmReward"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6969:23:33"
            },
            "scope": 13608,
            "src": "6878:941:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              10286
            ],
            "body": {
              "id": 13027,
              "nodeType": "Block",
              "src": "7959:139:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 13024,
                        "name": "QUERY_AWAITING_BLOCKS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12554,
                        "src": "8068:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 13021,
                            "name": "_queryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13012,
                            "src": "8018:8:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 13019,
                            "name": "WitOracleDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20110,
                            "src": "7977:16:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                              "typeString": "type(library WitOracleDataLib)"
                            }
                          },
                          "id": 13020,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8008:9:33",
                          "memberName": "seekQuery",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18181,
                          "src": "7977:40:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Query_$18074_storage_ptr_$",
                            "typeString": "function (uint256) view returns (struct WitOracleDataLib.Query storage pointer)"
                          }
                        },
                        "id": 13022,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7977:50:33",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Query_$18074_storage_ptr",
                          "typeString": "struct WitOracleDataLib.Query storage pointer"
                        }
                      },
                      "id": 13023,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8042:25:33",
                      "memberName": "getQueryStatusTrustlessly",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 21044,
                      "src": "7977:90:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Query_$18074_storage_ptr_$_t_uint256_$returns$_t_enum$_QueryStatus_$37335_$attached_to$_t_struct$_Query_$18074_storage_ptr_$",
                        "typeString": "function (struct WitOracleDataLib.Query storage pointer,uint256) view returns (enum Witnet.QueryStatus)"
                      }
                    },
                    "id": 13025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7977:113:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$37335",
                      "typeString": "enum Witnet.QueryStatus"
                    }
                  },
                  "functionReturnParameters": 13018,
                  "id": 13026,
                  "nodeType": "Return",
                  "src": "7970:120:33"
                }
              ]
            },
            "functionSelector": "6f07abcc",
            "id": 13028,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getQueryStatus",
            "nameLocation": "7836:14:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13014,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7886:8:33"
            },
            "parameters": {
              "id": 13013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13012,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "7859:8:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13028,
                  "src": "7851:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13011,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7851:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7850:18:33"
            },
            "returnParameters": {
              "id": 13018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13017,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13028,
                  "src": "7934:18:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_QueryStatus_$37335",
                    "typeString": "enum Witnet.QueryStatus"
                  },
                  "typeName": {
                    "id": 13016,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13015,
                      "name": "Witnet.QueryStatus",
                      "nameLocations": [
                        "7934:6:33",
                        "7941:11:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37335,
                      "src": "7934:18:33"
                    },
                    "referencedDeclaration": 37335,
                    "src": "7934:18:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_QueryStatus_$37335",
                      "typeString": "enum Witnet.QueryStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7933:20:33"
            },
            "scope": 13608,
            "src": "7827:271:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27644
            ],
            "body": {
              "id": 13042,
              "nodeType": "Block",
              "src": "8510:77:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 13039,
                        "name": "timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13031,
                        "src": "8569:9:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      ],
                      "expression": {
                        "id": 13037,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "8528:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 13038,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8535:33:33",
                      "memberName": "determineBeaconIndexFromTimestamp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 40148,
                      "src": "8528:40:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                        "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                      }
                    },
                    "id": 13040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8528:51:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 13036,
                  "id": 13041,
                  "nodeType": "Return",
                  "src": "8521:58:33"
                }
              ]
            },
            "functionSelector": "17d298d0",
            "id": 13043,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineBeaconIndexFromTimestamp",
            "nameLocation": "8368:33:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13033,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8447:8:33"
            },
            "parameters": {
              "id": 13032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13031,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "8419:9:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13043,
                  "src": "8402:26:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 13030,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13029,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "8402:6:33",
                        "8409:9:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "8402:16:33"
                    },
                    "referencedDeclaration": 37157,
                    "src": "8402:16:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8401:28:33"
            },
            "returnParameters": {
              "id": 13036,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13035,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13043,
                  "src": "8497:6:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 13034,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "8497:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8496:8:33"
            },
            "scope": 13608,
            "src": "8359:228:33",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27653
            ],
            "body": {
              "id": 13058,
              "nodeType": "Block",
              "src": "8756:71:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 13055,
                        "name": "timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13046,
                        "src": "8809:9:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      ],
                      "expression": {
                        "id": 13053,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "8774:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 13054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8781:27:33",
                      "memberName": "determineEpochFromTimestamp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 40208,
                      "src": "8774:34:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                        "typeString": "function (Witnet.Timestamp) pure returns (Witnet.BlockNumber)"
                      }
                    },
                    "id": 13056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8774:45:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "functionReturnParameters": 13052,
                  "id": 13057,
                  "nodeType": "Return",
                  "src": "8767:52:33"
                }
              ]
            },
            "functionSelector": "0f884886",
            "id": 13059,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineEpochFromTimestamp",
            "nameLocation": "8608:27:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13048,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8681:8:33"
            },
            "parameters": {
              "id": 13047,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13046,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "8653:9:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13059,
                  "src": "8636:26:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 13045,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13044,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "8636:6:33",
                        "8643:9:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "8636:16:33"
                    },
                    "referencedDeclaration": 37157,
                    "src": "8636:16:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8635:28:33"
            },
            "returnParameters": {
              "id": 13052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13051,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13059,
                  "src": "8731:18:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 13050,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13049,
                      "name": "Witnet.BlockNumber",
                      "nameLocations": [
                        "8731:6:33",
                        "8738:11:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "8731:18:33"
                    },
                    "referencedDeclaration": 37145,
                    "src": "8731:18:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8730:20:33"
            },
            "scope": 13608,
            "src": "8599:228:33",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27661
            ],
            "body": {
              "id": 13073,
              "nodeType": "Block",
              "src": "8967:69:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 13070,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13061,
                        "src": "9022:5:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "expression": {
                        "id": 13068,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "8985:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13069,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9011:10:33",
                      "memberName": "seekBeacon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20679,
                      "src": "8985:36:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Beacon_$37242_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct Witnet.Beacon storage pointer)"
                      }
                    },
                    "id": 13071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8985:43:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon storage pointer"
                    }
                  },
                  "functionReturnParameters": 13067,
                  "id": 13072,
                  "nodeType": "Return",
                  "src": "8978:50:33"
                }
              ]
            },
            "functionSelector": "47ad9e69",
            "id": 13074,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBeaconByIndex",
            "nameLocation": "8844:16:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13063,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8892:8:33"
            },
            "parameters": {
              "id": 13062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13061,
                  "mutability": "mutable",
                  "name": "index",
                  "nameLocation": "8868:5:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13074,
                  "src": "8861:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 13060,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8861:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8860:14:33"
            },
            "returnParameters": {
              "id": 13067,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13066,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13074,
                  "src": "8940:20:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 13065,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13064,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "8940:6:33",
                        "8947:6:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "8940:13:33"
                    },
                    "referencedDeclaration": 37242,
                    "src": "8940:13:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8939:22:33"
            },
            "scope": 13608,
            "src": "8835:201:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27667
            ],
            "body": {
              "id": 13104,
              "nodeType": "Block",
              "src": "9168:759:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 13083,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "9222:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 13084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "9229:26:33",
                        "memberName": "WIT_2_GENESIS_BEACON_INDEX",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37168,
                        "src": "9222:33:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "expression": {
                          "id": 13085,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "9281:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 13086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "9288:31:33",
                        "memberName": "WIT_2_GENESIS_BEACON_PREV_INDEX",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37171,
                        "src": "9281:38:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "expression": {
                          "id": 13087,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "9344:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 13088,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "9351:30:33",
                        "memberName": "WIT_2_GENESIS_BEACON_PREV_ROOT",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37174,
                        "src": "9344:37:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes24",
                          "typeString": "bytes24"
                        }
                      },
                      {
                        "expression": {
                          "id": 13089,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "9418:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 13090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "9425:44:33",
                        "memberName": "WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37177,
                        "src": "9418:51:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "expression": {
                          "id": 13091,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "9506:6:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 13092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "9513:44:33",
                        "memberName": "WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37180,
                        "src": "9506:51:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "components": [
                          {
                            "expression": {
                              "id": 13093,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "9615:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 13094,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "9622:48:33",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37183,
                            "src": "9615:55:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 13095,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "9689:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 13096,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "9696:48:33",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37186,
                            "src": "9689:55:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 13097,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "9763:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 13098,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "9770:48:33",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37189,
                            "src": "9763:55:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 13099,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "9837:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 13100,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "9844:48:33",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37192,
                            "src": "9837:55:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 13101,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "9596:311:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                          "typeString": "uint256[4] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes24",
                          "typeString": "bytes24"
                        },
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                          "typeString": "uint256[4] memory"
                        }
                      ],
                      "expression": {
                        "id": 13081,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "9186:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 13082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9193:6:33",
                      "memberName": "Beacon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37242,
                      "src": "9186:13:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Beacon_$37242_storage_ptr_$",
                        "typeString": "type(struct Witnet.Beacon storage pointer)"
                      }
                    },
                    "id": 13102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "9215:5:33",
                      "9270:9:33",
                      "9334:8:33",
                      "9396:20:33",
                      "9484:20:33",
                      "9572:22:33"
                    ],
                    "names": [
                      "index",
                      "prevIndex",
                      "prevRoot",
                      "ddrTalliesMerkleRoot",
                      "droTalliesMerkleRoot",
                      "nextCommitteeAggPubkey"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "9186:733:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                      "typeString": "struct Witnet.Beacon memory"
                    }
                  },
                  "functionReturnParameters": 13080,
                  "id": 13103,
                  "nodeType": "Return",
                  "src": "9179:740:33"
                }
              ]
            },
            "functionSelector": "d4038ac6",
            "id": 13105,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getGenesisBeacon",
            "nameLocation": "9053:16:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13076,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9090:8:33"
            },
            "parameters": {
              "id": 13075,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9069:2:33"
            },
            "returnParameters": {
              "id": 13080,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13079,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13105,
                  "src": "9141:20:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 13078,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13077,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "9141:6:33",
                        "9148:6:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "9141:13:33"
                    },
                    "referencedDeclaration": 37242,
                    "src": "9141:13:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9140:22:33"
            },
            "scope": 13608,
            "src": "9044:883:33",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27673
            ],
            "body": {
              "id": 13116,
              "nodeType": "Block",
              "src": "10058:72:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 13112,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "10076:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10102:18:33",
                      "memberName": "getLastKnownBeacon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20581,
                      "src": "10076:44:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Beacon_$37242_storage_ptr_$",
                        "typeString": "function () view returns (struct Witnet.Beacon storage pointer)"
                      }
                    },
                    "id": 13114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10076:46:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon storage pointer"
                    }
                  },
                  "functionReturnParameters": 13111,
                  "id": 13115,
                  "nodeType": "Return",
                  "src": "10069:53:33"
                }
              ]
            },
            "functionSelector": "8bfabb4f",
            "id": 13117,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLastKnownBeacon",
            "nameLocation": "9944:18:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13107,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9983:8:33"
            },
            "parameters": {
              "id": 13106,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9962:2:33"
            },
            "returnParameters": {
              "id": 13111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13110,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13117,
                  "src": "10031:20:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 13109,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13108,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "10031:6:33",
                        "10038:6:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "10031:13:33"
                    },
                    "referencedDeclaration": 37242,
                    "src": "10031:13:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10030:22:33"
            },
            "scope": 13608,
            "src": "9935:195:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27678
            ],
            "body": {
              "id": 13130,
              "nodeType": "Block",
              "src": "10251:85:33",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 13125,
                            "name": "WitOracleTrustlessDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22249,
                            "src": "10276:25:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                              "typeString": "type(library WitOracleTrustlessDataLib)"
                            }
                          },
                          "id": 13126,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10302:23:33",
                          "memberName": "getLastKnownBeaconIndex",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 20591,
                          "src": "10276:49:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 13127,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10276:51:33",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 13124,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "10269:6:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint32_$",
                        "typeString": "type(uint32)"
                      },
                      "typeName": {
                        "id": 13123,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "10269:6:33",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 13128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10269:59:33",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 13122,
                  "id": 13129,
                  "nodeType": "Return",
                  "src": "10262:66:33"
                }
              ]
            },
            "functionSelector": "fe52e05f",
            "id": 13131,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLastKnownBeaconIndex",
            "nameLocation": "10147:23:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13119,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10190:8:33"
            },
            "parameters": {
              "id": 13118,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10170:2:33"
            },
            "returnParameters": {
              "id": 13122,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13121,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13131,
                  "src": "10238:6:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 13120,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10238:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10237:8:33"
            },
            "scope": 13608,
            "src": "10138:198:33",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27688
            ],
            "body": {
              "id": 13172,
              "nodeType": "Block",
              "src": "10494:397:33",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 13152,
                        "nodeType": "Block",
                        "src": "10661:58:33",
                        "statements": [
                          {
                            "expression": {
                              "id": 13150,
                              "name": "_witOracleHead",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13148,
                              "src": "10683:14:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                                "typeString": "struct Witnet.Beacon memory"
                              }
                            },
                            "functionReturnParameters": 13141,
                            "id": 13151,
                            "nodeType": "Return",
                            "src": "10676:21:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13153,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13149,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13148,
                            "mutability": "mutable",
                            "name": "_witOracleHead",
                            "nameLocation": "10635:14:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13153,
                            "src": "10614:35:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                              "typeString": "struct Witnet.Beacon"
                            },
                            "typeName": {
                              "id": 13147,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 13146,
                                "name": "Witnet.Beacon",
                                "nameLocations": [
                                  "10614:6:33",
                                  "10621:6:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37242,
                                "src": "10614:13:33"
                              },
                              "referencedDeclaration": 37242,
                              "src": "10614:13:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                "typeString": "struct Witnet.Beacon"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "10599:61:33"
                      },
                      "src": "10591:128:33"
                    },
                    {
                      "block": {
                        "id": 13161,
                        "nodeType": "Block",
                        "src": "10755:53:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 13158,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13155,
                                  "src": "10778:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 13157,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "10770:7:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 13159,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10770:16:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13160,
                            "nodeType": "ExpressionStatement",
                            "src": "10770:16:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 13162,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13156,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13155,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "10746:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13162,
                            "src": "10732:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 13154,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "10732:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "10731:23:33"
                      },
                      "src": "10720:88:33"
                    },
                    {
                      "block": {
                        "id": 13169,
                        "nodeType": "Block",
                        "src": "10830:54:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 13166,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11028,
                                "src": "10845:25:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 13167,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10845:27:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13168,
                            "nodeType": "ExpressionStatement",
                            "src": "10845:27:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13170,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13165,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13164,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 13170,
                            "src": "10816:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13163,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "10816:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "10815:14:33"
                      },
                      "src": "10809:75:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 13144,
                        "name": "_witOracleRollup",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13135,
                        "src": "10563:16:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 13142,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "10509:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13143,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10535:13:33",
                      "memberName": "rollupBeacons",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20630,
                      "src": "10509:39:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_Beacon_$37242_memory_ptr_$",
                        "typeString": "function (struct Witnet.FastForward memory[] memory) returns (struct Witnet.Beacon memory)"
                      }
                    },
                    "id": 13145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10509:81:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                      "typeString": "struct Witnet.Beacon memory"
                    }
                  },
                  "id": 13171,
                  "nodeType": "TryStatement",
                  "src": "10505:379:33"
                }
              ]
            },
            "functionSelector": "05760031",
            "id": 13173,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rollupBeacons",
            "nameLocation": "10353:13:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13137,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10432:8:33"
            },
            "parameters": {
              "id": 13136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13135,
                  "mutability": "mutable",
                  "name": "_witOracleRollup",
                  "nameLocation": "10397:16:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13173,
                  "src": "10367:46:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct Witnet.FastForward[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13133,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 13132,
                        "name": "Witnet.FastForward",
                        "nameLocations": [
                          "10367:6:33",
                          "10374:11:33"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37306,
                        "src": "10367:18:33"
                      },
                      "referencedDeclaration": 37306,
                      "src": "10367:18:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                        "typeString": "struct Witnet.FastForward"
                      }
                    },
                    "id": 13134,
                    "nodeType": "ArrayTypeName",
                    "src": "10367:20:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.FastForward[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10366:48:33"
            },
            "returnParameters": {
              "id": 13141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13140,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13173,
                  "src": "10467:20:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 13139,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13138,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "10467:6:33",
                        "10474:6:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "10467:13:33"
                    },
                    "referencedDeclaration": 37242,
                    "src": "10467:13:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10466:22:33"
            },
            "scope": 13608,
            "src": "10344:547:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27075
            ],
            "body": {
              "id": 13217,
              "nodeType": "Block",
              "src": "11272:469:33",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 13197,
                        "nodeType": "Block",
                        "src": "11515:54:33",
                        "statements": [
                          {
                            "expression": {
                              "id": 13195,
                              "name": "_evmReward",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13193,
                              "src": "11537:10:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "functionReturnParameters": 13181,
                            "id": 13196,
                            "nodeType": "Return",
                            "src": "11530:17:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13198,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13194,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13193,
                            "mutability": "mutable",
                            "name": "_evmReward",
                            "nameLocation": "11493:10:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13198,
                            "src": "11485:18:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 13192,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "11485:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "11470:44:33"
                      },
                      "src": "11462:107:33"
                    },
                    {
                      "block": {
                        "id": 13206,
                        "nodeType": "Block",
                        "src": "11605:53:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 13203,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13200,
                                  "src": "11628:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 13202,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "11620:7:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 13204,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11620:16:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13205,
                            "nodeType": "ExpressionStatement",
                            "src": "11620:16:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 13207,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13201,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13200,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "11596:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13207,
                            "src": "11582:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 13199,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "11582:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "11581:23:33"
                      },
                      "src": "11570:88:33"
                    },
                    {
                      "block": {
                        "id": 13214,
                        "nodeType": "Block",
                        "src": "11680:54:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 13211,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11028,
                                "src": "11695:25:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 13212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11695:27:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13213,
                            "nodeType": "ExpressionStatement",
                            "src": "11695:27:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13215,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13210,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13209,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 13215,
                            "src": "11666:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13208,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "11666:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "11665:14:33"
                      },
                      "src": "11659:75:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 13187,
                            "name": "_queryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13176,
                            "src": "11366:8:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                              "typeString": "Witnet.QueryId"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                              "typeString": "Witnet.QueryId"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 13184,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "11344:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 13185,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11351:7:33",
                            "memberName": "QueryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37151,
                            "src": "11344:14:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                              "typeString": "type(Witnet.QueryId)"
                            }
                          },
                          "id": 13186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "11359:6:33",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "11344:21:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.QueryId) pure returns (uint64)"
                          }
                        },
                        "id": 13188,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11344:31:33",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "id": 13189,
                        "name": "QUERY_AWAITING_BLOCKS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12554,
                        "src": "11391:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 13190,
                        "name": "QUERY_REPORTING_STAKE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12557,
                        "src": "11427:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 13182,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "11287:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13183,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11313:16:33",
                      "memberName": "claimQueryReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 21204,
                      "src": "11287:42:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 13191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11287:174:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 13216,
                  "nodeType": "TryStatement",
                  "src": "11283:451:33"
                }
              ]
            },
            "functionSelector": "f91ffdb2",
            "id": 13218,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claimQueryReward",
            "nameLocation": "11163:16:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13178,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11222:8:33"
            },
            "parameters": {
              "id": 13177,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13176,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "11195:8:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13218,
                  "src": "11180:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 13175,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13174,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "11180:6:33",
                        "11187:7:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "11180:14:33"
                    },
                    "referencedDeclaration": 37151,
                    "src": "11180:14:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11179:25:33"
            },
            "returnParameters": {
              "id": 13181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13180,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13218,
                  "src": "11258:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13179,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11258:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11257:9:33"
            },
            "scope": 13608,
            "src": "11154:587:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27084
            ],
            "body": {
              "id": 13288,
              "nodeType": "Block",
              "src": "11900:796:33",
              "statements": [
                {
                  "body": {
                    "id": 13286,
                    "nodeType": "Block",
                    "src": "11962:727:33",
                    "statements": [
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 13258,
                              "nodeType": "Block",
                              "src": "12222:78:33",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 13256,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "id": 13254,
                                      "name": "_evmTotalReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13226,
                                      "src": "12241:15:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "id": 13255,
                                      "name": "_evmReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13252,
                                      "src": "12260:10:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "12241:29:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 13257,
                                  "nodeType": "ExpressionStatement",
                                  "src": "12241:29:33"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 13259,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 13253,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 13252,
                                  "mutability": "mutable",
                                  "name": "_evmReward",
                                  "nameLocation": "12210:10:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13259,
                                  "src": "12202:18:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 13251,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12202:7:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "12201:20:33"
                            },
                            "src": "12193:107:33"
                          },
                          {
                            "block": {
                              "id": 13270,
                              "nodeType": "Block",
                              "src": "12336:152:33",
                              "statements": [
                                {
                                  "eventCall": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 13264,
                                          "name": "_queryIds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13222,
                                          "src": "12398:9:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_calldata_ptr",
                                            "typeString": "Witnet.QueryId[] calldata"
                                          }
                                        },
                                        "id": 13266,
                                        "indexExpression": {
                                          "id": 13265,
                                          "name": "_ix",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13229,
                                          "src": "12408:3:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12398:14:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        }
                                      },
                                      {
                                        "id": 13267,
                                        "name": "_reason",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13261,
                                        "src": "12436:7:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        },
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 13263,
                                      "name": "BatchQueryError",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 27067,
                                      "src": "12360:15:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (Witnet.QueryId,string memory)"
                                      }
                                    },
                                    "id": 13268,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12360:102:33",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 13269,
                                  "nodeType": "EmitStatement",
                                  "src": "12355:107:33"
                                }
                              ]
                            },
                            "errorName": "Error",
                            "id": 13271,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 13262,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 13261,
                                  "mutability": "mutable",
                                  "name": "_reason",
                                  "nameLocation": "12327:7:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13271,
                                  "src": "12313:21:33",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string"
                                  },
                                  "typeName": {
                                    "id": 13260,
                                    "name": "string",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12313:6:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage_ptr",
                                      "typeString": "string"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "12312:23:33"
                            },
                            "src": "12301:187:33"
                          },
                          {
                            "block": {
                              "id": 13283,
                              "nodeType": "Block",
                              "src": "12510:168:33",
                              "statements": [
                                {
                                  "eventCall": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 13276,
                                          "name": "_queryIds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13222,
                                          "src": "12572:9:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_calldata_ptr",
                                            "typeString": "Witnet.QueryId[] calldata"
                                          }
                                        },
                                        "id": 13278,
                                        "indexExpression": {
                                          "id": 13277,
                                          "name": "_ix",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13229,
                                          "src": "12582:3:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12572:14:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        }
                                      },
                                      {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 13279,
                                          "name": "_revertUnhandledExceptionReason",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11046,
                                          "src": "12610:31:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_string_memory_ptr_$",
                                            "typeString": "function () pure returns (string memory)"
                                          }
                                        },
                                        "id": 13280,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12610:33:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        },
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 13275,
                                      "name": "BatchQueryError",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 27067,
                                      "src": "12534:15:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (Witnet.QueryId,string memory)"
                                      }
                                    },
                                    "id": 13281,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12534:128:33",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 13282,
                                  "nodeType": "EmitStatement",
                                  "src": "12529:133:33"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 13284,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 13274,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 13273,
                                  "mutability": "mutable",
                                  "name": "",
                                  "nameLocation": "-1:-1:-1",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13284,
                                  "src": "12496:12:33",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 13272,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "12496:5:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "12495:14:33"
                            },
                            "src": "12489:189:33"
                          }
                        ],
                        "externalCall": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "baseExpression": {
                                    "id": 13244,
                                    "name": "_queryIds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13222,
                                    "src": "12064:9:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_calldata_ptr",
                                      "typeString": "Witnet.QueryId[] calldata"
                                    }
                                  },
                                  "id": 13246,
                                  "indexExpression": {
                                    "id": 13245,
                                    "name": "_ix",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 13229,
                                    "src": "12074:3:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "12064:14:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                    "typeString": "Witnet.QueryId"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                    "typeString": "Witnet.QueryId"
                                  }
                                ],
                                "expression": {
                                  "expression": {
                                    "id": 13241,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "12042:6:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 13242,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "12049:7:33",
                                  "memberName": "QueryId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37151,
                                  "src": "12042:14:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                    "typeString": "type(Witnet.QueryId)"
                                  }
                                },
                                "id": 13243,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "12057:6:33",
                                "memberName": "unwrap",
                                "nodeType": "MemberAccess",
                                "src": "12042:21:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_uint64_$",
                                  "typeString": "function (Witnet.QueryId) pure returns (uint64)"
                                }
                              },
                              "id": 13247,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12042:37:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            {
                              "id": 13248,
                              "name": "QUERY_AWAITING_BLOCKS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12554,
                              "src": "12098:21:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 13249,
                              "name": "QUERY_REPORTING_STAKE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12557,
                              "src": "12138:21:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 13239,
                              "name": "WitOracleTrustlessDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22249,
                              "src": "11981:25:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 13240,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12007:16:33",
                            "memberName": "claimQueryReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 21204,
                            "src": "11981:42:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256,uint256) returns (uint256)"
                            }
                          },
                          "id": 13250,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11981:211:33",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 13285,
                        "nodeType": "TryStatement",
                        "src": "11977:701:33"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 13235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 13232,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13229,
                      "src": "11930:3:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 13233,
                        "name": "_queryIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13222,
                        "src": "11936:9:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_calldata_ptr",
                          "typeString": "Witnet.QueryId[] calldata"
                        }
                      },
                      "id": 13234,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11946:6:33",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "11936:16:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11930:22:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13287,
                  "initializationExpression": {
                    "assignments": [
                      13229
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 13229,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "11921:3:33",
                        "nodeType": "VariableDeclaration",
                        "scope": 13287,
                        "src": "11916:8:33",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 13228,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "11916:4:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 13231,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 13230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11927:1:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "11916:12:33"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 13237,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "11954:6:33",
                      "subExpression": {
                        "id": 13236,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13229,
                        "src": "11954:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 13238,
                    "nodeType": "ExpressionStatement",
                    "src": "11954:6:33"
                  },
                  "nodeType": "ForStatement",
                  "src": "11911:778:33"
                }
              ]
            },
            "functionSelector": "53a5d58c",
            "id": 13289,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claimQueryRewardBatch",
            "nameLocation": "11758:21:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13224,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11834:8:33"
            },
            "parameters": {
              "id": 13223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13222,
                  "mutability": "mutable",
                  "name": "_queryIds",
                  "nameLocation": "11806:9:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13289,
                  "src": "11780:35:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_calldata_ptr",
                    "typeString": "Witnet.QueryId[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13220,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 13219,
                        "name": "Witnet.QueryId",
                        "nameLocations": [
                          "11780:6:33",
                          "11787:7:33"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37151,
                        "src": "11780:14:33"
                      },
                      "referencedDeclaration": 37151,
                      "src": "11780:14:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                        "typeString": "Witnet.QueryId"
                      }
                    },
                    "id": 13221,
                    "nodeType": "ArrayTypeName",
                    "src": "11780:16:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_userDefinedValueType$_QueryId_$37151_$dyn_storage_ptr",
                      "typeString": "Witnet.QueryId[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11779:37:33"
            },
            "returnParameters": {
              "id": 13227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13226,
                  "mutability": "mutable",
                  "name": "_evmTotalReward",
                  "nameLocation": "11878:15:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13289,
                  "src": "11870:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13225,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11870:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11869:25:33"
            },
            "scope": 13608,
            "src": "11749:947:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27092
            ],
            "body": {
              "id": 13333,
              "nodeType": "Block",
              "src": "12827:464:33",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 13313,
                        "nodeType": "Block",
                        "src": "13056:63:33",
                        "statements": [
                          {
                            "expression": {
                              "id": 13311,
                              "name": "_evmPotentialReward",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13309,
                              "src": "13078:19:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "functionReturnParameters": 13297,
                            "id": 13312,
                            "nodeType": "Return",
                            "src": "13071:26:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13314,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13310,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13309,
                            "mutability": "mutable",
                            "name": "_evmPotentialReward",
                            "nameLocation": "13035:19:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13314,
                            "src": "13027:27:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 13308,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "13027:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13026:29:33"
                      },
                      "src": "13018:101:33"
                    },
                    {
                      "block": {
                        "id": 13322,
                        "nodeType": "Block",
                        "src": "13155:53:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 13319,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13316,
                                  "src": "13178:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 13318,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "13170:7:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 13320,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13170:16:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13321,
                            "nodeType": "ExpressionStatement",
                            "src": "13170:16:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 13323,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13317,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13316,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "13146:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13323,
                            "src": "13132:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 13315,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "13132:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13131:23:33"
                      },
                      "src": "13120:88:33"
                    },
                    {
                      "block": {
                        "id": 13330,
                        "nodeType": "Block",
                        "src": "13230:54:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 13327,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11028,
                                "src": "13245:25:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 13328,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13245:27:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13329,
                            "nodeType": "ExpressionStatement",
                            "src": "13245:27:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13331,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13326,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13325,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 13331,
                            "src": "13216:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13324,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "13216:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13215:14:33"
                      },
                      "src": "13209:75:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 13303,
                            "name": "_queryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13292,
                            "src": "12925:8:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                              "typeString": "Witnet.QueryId"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                              "typeString": "Witnet.QueryId"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 13300,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "12903:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 13301,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12910:7:33",
                            "memberName": "QueryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37151,
                            "src": "12903:14:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                              "typeString": "type(Witnet.QueryId)"
                            }
                          },
                          "id": 13302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "12918:6:33",
                          "memberName": "unwrap",
                          "nodeType": "MemberAccess",
                          "src": "12903:21:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_uint64_$",
                            "typeString": "function (Witnet.QueryId) pure returns (uint64)"
                          }
                        },
                        "id": 13304,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12903:31:33",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "id": 13305,
                        "name": "QUERY_AWAITING_BLOCKS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12554,
                        "src": "12949:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 13306,
                        "name": "QUERY_REPORTING_STAKE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12557,
                        "src": "12985:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 13298,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "12842:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13299,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12868:20:33",
                      "memberName": "disputeQueryResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 21294,
                      "src": "12842:46:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 13307,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12842:175:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 13332,
                  "nodeType": "TryStatement",
                  "src": "12838:446:33"
                }
              ]
            },
            "functionSelector": "50127a96",
            "id": 13334,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "disputeQueryResponse",
            "nameLocation": "12713:20:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13294,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12777:8:33"
            },
            "parameters": {
              "id": 13293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13292,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "12749:8:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13334,
                  "src": "12734:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 13291,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13290,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "12734:6:33",
                        "12741:7:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "12734:14:33"
                    },
                    "referencedDeclaration": 37151,
                    "src": "12734:14:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12733:25:33"
            },
            "returnParameters": {
              "id": 13297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13296,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13334,
                  "src": "12813:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13295,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12813:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12812:9:33"
            },
            "scope": 13608,
            "src": "12704:587:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27100
            ],
            "body": {
              "id": 13426,
              "nodeType": "Block",
              "src": "13442:1371:33",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 13406,
                        "nodeType": "Block",
                        "src": "13942:699:33",
                        "statements": [
                          {
                            "clauses": [
                              {
                                "block": {
                                  "id": 13386,
                                  "nodeType": "Block",
                                  "src": "14365:66:33",
                                  "statements": [
                                    {
                                      "expression": {
                                        "id": 13384,
                                        "name": "_evmReward",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13382,
                                        "src": "14391:10:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "functionReturnParameters": 13342,
                                      "id": 13385,
                                      "nodeType": "Return",
                                      "src": "14384:17:33"
                                    }
                                  ]
                                },
                                "errorName": "",
                                "id": 13387,
                                "nodeType": "TryCatchClause",
                                "parameters": {
                                  "id": 13383,
                                  "nodeType": "ParameterList",
                                  "parameters": [
                                    {
                                      "constant": false,
                                      "id": 13382,
                                      "mutability": "mutable",
                                      "name": "_evmReward",
                                      "nameLocation": "14339:10:33",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 13387,
                                      "src": "14331:18:33",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 13381,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "14331:7:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "src": "14312:52:33"
                                },
                                "src": "14304:127:33"
                              },
                              {
                                "block": {
                                  "id": 13395,
                                  "nodeType": "Block",
                                  "src": "14467:65:33",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "id": 13392,
                                            "name": "_reason",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13389,
                                            "src": "14494:7:33",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string memory"
                                            }
                                          ],
                                          "id": 13391,
                                          "name": "_revert",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 26513,
                                          "src": "14486:7:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                            "typeString": "function (string memory) view"
                                          }
                                        },
                                        "id": 13393,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14486:16:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 13394,
                                      "nodeType": "ExpressionStatement",
                                      "src": "14486:16:33"
                                    }
                                  ]
                                },
                                "errorName": "Error",
                                "id": 13396,
                                "nodeType": "TryCatchClause",
                                "parameters": {
                                  "id": 13390,
                                  "nodeType": "ParameterList",
                                  "parameters": [
                                    {
                                      "constant": false,
                                      "id": 13389,
                                      "mutability": "mutable",
                                      "name": "_reason",
                                      "nameLocation": "14458:7:33",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 13396,
                                      "src": "14444:21:33",
                                      "stateVariable": false,
                                      "storageLocation": "memory",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                      },
                                      "typeName": {
                                        "id": 13388,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "14444:6:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_storage_ptr",
                                          "typeString": "string"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "src": "14443:23:33"
                                },
                                "src": "14432:100:33"
                              },
                              {
                                "block": {
                                  "id": 13403,
                                  "nodeType": "Block",
                                  "src": "14554:66:33",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 13400,
                                          "name": "_revertUnhandledException",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11028,
                                          "src": "14573:25:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                            "typeString": "function () view"
                                          }
                                        },
                                        "id": 13401,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14573:27:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 13402,
                                      "nodeType": "ExpressionStatement",
                                      "src": "14573:27:33"
                                    }
                                  ]
                                },
                                "errorName": "",
                                "id": 13404,
                                "nodeType": "TryCatchClause",
                                "parameters": {
                                  "id": 13399,
                                  "nodeType": "ParameterList",
                                  "parameters": [
                                    {
                                      "constant": false,
                                      "id": 13398,
                                      "mutability": "mutable",
                                      "name": "",
                                      "nameLocation": "-1:-1:-1",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 13404,
                                      "src": "14540:12:33",
                                      "stateVariable": false,
                                      "storageLocation": "memory",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes"
                                      },
                                      "typeName": {
                                        "id": 13397,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "14540:5:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_storage_ptr",
                                          "typeString": "bytes"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "src": "14539:14:33"
                                },
                                "src": "14533:87:33"
                              }
                            ],
                            "externalCall": {
                              "arguments": [
                                {
                                  "id": 13369,
                                  "name": "evmReporter",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13350,
                                  "src": "14031:11:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "id": 13370,
                                  "name": "evmGasPrice",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13352,
                                  "src": "14065:11:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "id": 13371,
                                  "name": "evmFinalityBlock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13354,
                                  "src": "14099:16:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 13375,
                                      "name": "queryId",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 13357,
                                      "src": "14160:7:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                        "typeString": "Witnet.QueryId"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                        "typeString": "Witnet.QueryId"
                                      }
                                    ],
                                    "expression": {
                                      "expression": {
                                        "id": 13372,
                                        "name": "Witnet",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 40741,
                                        "src": "14138:6:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                          "typeString": "type(library Witnet)"
                                        }
                                      },
                                      "id": 13373,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "14145:7:33",
                                      "memberName": "QueryId",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 37151,
                                      "src": "14138:14:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                        "typeString": "type(Witnet.QueryId)"
                                      }
                                    },
                                    "id": 13374,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "14153:6:33",
                                    "memberName": "unwrap",
                                    "nodeType": "MemberAccess",
                                    "src": "14138:21:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_uint64_$",
                                      "typeString": "function (Witnet.QueryId) pure returns (uint64)"
                                    }
                                  },
                                  "id": 13376,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14138:30:33",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                {
                                  "id": 13377,
                                  "name": "witDrResultTimestamp",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13360,
                                  "src": "14191:20:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                    "typeString": "Witnet.Timestamp"
                                  }
                                },
                                {
                                  "id": 13378,
                                  "name": "witDrTxHash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13363,
                                  "src": "14234:11:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                    "typeString": "Witnet.TransactionHash"
                                  }
                                },
                                {
                                  "id": 13379,
                                  "name": "witDrResultCborBytes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13365,
                                  "src": "14268:20:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                    "typeString": "Witnet.Timestamp"
                                  },
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                    "typeString": "Witnet.TransactionHash"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                ],
                                "expression": {
                                  "id": 13367,
                                  "name": "WitOracleDataLib",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20110,
                                  "src": "13961:16:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                    "typeString": "type(library WitOracleDataLib)"
                                  }
                                },
                                "id": 13368,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "13996:12:33",
                                "memberName": "reportResult",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19691,
                                "src": "13961:47:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                                  "typeString": "function (address,uint256,uint64,uint256,Witnet.Timestamp,Witnet.TransactionHash,bytes memory) returns (uint256)"
                                }
                              },
                              "id": 13380,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13961:342:33",
                              "tryCall": true,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 13405,
                            "nodeType": "TryStatement",
                            "src": "13957:663:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13407,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13366,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13350,
                            "mutability": "mutable",
                            "name": "evmReporter",
                            "nameLocation": "13660:11:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13652:19:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 13349,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "13652:7:33",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 13352,
                            "mutability": "mutable",
                            "name": "evmGasPrice",
                            "nameLocation": "13694:11:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13686:19:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 13351,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "13686:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 13354,
                            "mutability": "mutable",
                            "name": "evmFinalityBlock",
                            "nameLocation": "13728:16:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13720:24:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            "typeName": {
                              "id": 13353,
                              "name": "uint64",
                              "nodeType": "ElementaryTypeName",
                              "src": "13720:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 13357,
                            "mutability": "mutable",
                            "name": "queryId",
                            "nameLocation": "13774:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13759:22:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                              "typeString": "Witnet.QueryId"
                            },
                            "typeName": {
                              "id": 13356,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 13355,
                                "name": "Witnet.QueryId",
                                "nameLocations": [
                                  "13759:6:33",
                                  "13766:7:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37151,
                                "src": "13759:14:33"
                              },
                              "referencedDeclaration": 37151,
                              "src": "13759:14:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                "typeString": "Witnet.QueryId"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 13360,
                            "mutability": "mutable",
                            "name": "witDrResultTimestamp",
                            "nameLocation": "13813:20:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13796:37:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            },
                            "typeName": {
                              "id": 13359,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 13358,
                                "name": "Witnet.Timestamp",
                                "nameLocations": [
                                  "13796:6:33",
                                  "13803:9:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37157,
                                "src": "13796:16:33"
                              },
                              "referencedDeclaration": 37157,
                              "src": "13796:16:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 13363,
                            "mutability": "mutable",
                            "name": "witDrTxHash",
                            "nameLocation": "13871:11:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13848:34:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                              "typeString": "Witnet.TransactionHash"
                            },
                            "typeName": {
                              "id": 13362,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 13361,
                                "name": "Witnet.TransactionHash",
                                "nameLocations": [
                                  "13848:6:33",
                                  "13855:15:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37159,
                                "src": "13848:22:33"
                              },
                              "referencedDeclaration": 37159,
                              "src": "13848:22:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                "typeString": "Witnet.TransactionHash"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 13365,
                            "mutability": "mutable",
                            "name": "witDrResultCborBytes",
                            "nameLocation": "13910:20:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13407,
                            "src": "13897:33:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13364,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "13897:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "13637:304:33"
                      },
                      "src": "13629:1012:33"
                    },
                    {
                      "block": {
                        "id": 13415,
                        "nodeType": "Block",
                        "src": "14677:53:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 13412,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13409,
                                  "src": "14700:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 13411,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "14692:7:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 13413,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14692:16:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13414,
                            "nodeType": "ExpressionStatement",
                            "src": "14692:16:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 13416,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13410,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13409,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "14668:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13416,
                            "src": "14654:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 13408,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "14654:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "14653:23:33"
                      },
                      "src": "14642:88:33"
                    },
                    {
                      "block": {
                        "id": 13423,
                        "nodeType": "Block",
                        "src": "14752:54:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 13420,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11028,
                                "src": "14767:25:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 13421,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14767:27:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13422,
                            "nodeType": "ExpressionStatement",
                            "src": "14767:27:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13424,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13419,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13418,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 13424,
                            "src": "14738:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13417,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "14738:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "14737:14:33"
                      },
                      "src": "14731:75:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 13345,
                        "name": "_responseReport",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13337,
                        "src": "13528:15:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                          "typeString": "struct Witnet.DataPullReport calldata"
                        }
                      },
                      {
                        "id": 13346,
                        "name": "QUERY_AWAITING_BLOCKS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12554,
                        "src": "13558:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 13347,
                        "name": "QUERY_REPORTING_STAKE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12557,
                        "src": "13594:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                          "typeString": "struct Witnet.DataPullReport calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 13343,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "13457:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13344,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13483:30:33",
                      "memberName": "reportQueryResponseTrustlessly",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 21453,
                      "src": "13457:56:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_DataPullReport_$37259_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$_t_uint64_$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_bytes_memory_ptr_$",
                        "typeString": "function (struct Witnet.DataPullReport memory,uint256,uint256) returns (address,uint256,uint64,Witnet.QueryId,Witnet.Timestamp,Witnet.TransactionHash,bytes memory)"
                      }
                    },
                    "id": 13348,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13457:171:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$_t_uint64_$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_bytes_memory_ptr_$",
                      "typeString": "tuple(address,uint256,uint64,Witnet.QueryId,Witnet.Timestamp,Witnet.TransactionHash,bytes memory)"
                    }
                  },
                  "id": 13425,
                  "nodeType": "TryStatement",
                  "src": "13453:1353:33"
                }
              ]
            },
            "functionSelector": "90602a90",
            "id": 13427,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reportQueryResponse",
            "nameLocation": "13308:19:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13339,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13393:8:33"
            },
            "parameters": {
              "id": 13338,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13337,
                  "mutability": "mutable",
                  "name": "_responseReport",
                  "nameLocation": "13359:15:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13427,
                  "src": "13328:46:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                    "typeString": "struct Witnet.DataPullReport"
                  },
                  "typeName": {
                    "id": 13336,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13335,
                      "name": "Witnet.DataPullReport",
                      "nameLocations": [
                        "13328:6:33",
                        "13335:14:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37259,
                      "src": "13328:21:33"
                    },
                    "referencedDeclaration": 37259,
                    "src": "13328:21:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                      "typeString": "struct Witnet.DataPullReport"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13327:48:33"
            },
            "returnParameters": {
              "id": 13342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13341,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13427,
                  "src": "13428:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13340,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13428:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13427:9:33"
            },
            "scope": 13608,
            "src": "13299:1514:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27109
            ],
            "body": {
              "id": 13556,
              "nodeType": "Block",
              "src": "14994:2108:33",
              "statements": [
                {
                  "body": {
                    "id": 13554,
                    "nodeType": "Block",
                    "src": "15063:2032:33",
                    "statements": [
                      {
                        "assignments": [
                          13452
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 13452,
                            "mutability": "mutable",
                            "name": "_responseReport",
                            "nameLocation": "15109:15:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13554,
                            "src": "15078:46:33",
                            "stateVariable": false,
                            "storageLocation": "calldata",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                              "typeString": "struct Witnet.DataPullReport"
                            },
                            "typeName": {
                              "id": 13451,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 13450,
                                "name": "Witnet.DataPullReport",
                                "nameLocations": [
                                  "15078:6:33",
                                  "15085:14:33"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37259,
                                "src": "15078:21:33"
                              },
                              "referencedDeclaration": 37259,
                              "src": "15078:21:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                                "typeString": "struct Witnet.DataPullReport"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 13456,
                        "initialValue": {
                          "baseExpression": {
                            "id": 13453,
                            "name": "_responseReports",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13431,
                            "src": "15127:16:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_DataPullReport_$37259_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "struct Witnet.DataPullReport calldata[] calldata"
                            }
                          },
                          "id": 13455,
                          "indexExpression": {
                            "id": 13454,
                            "name": "_ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13438,
                            "src": "15144:3:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "15127:21:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                            "typeString": "struct Witnet.DataPullReport calldata"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15078:70:33"
                      },
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 13528,
                              "nodeType": "Block",
                              "src": "15698:996:33",
                              "statements": [
                                {
                                  "clauses": [
                                    {
                                      "block": {
                                        "id": 13502,
                                        "nodeType": "Block",
                                        "src": "16126:97:33",
                                        "statements": [
                                          {
                                            "expression": {
                                              "id": 13500,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftHandSide": {
                                                "id": 13498,
                                                "name": "_evmTotalReward",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13435,
                                                "src": "16149:15:33",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              "nodeType": "Assignment",
                                              "operator": "+=",
                                              "rightHandSide": {
                                                "id": 13499,
                                                "name": "_evmPartialReward",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 13496,
                                                "src": "16168:17:33",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              "src": "16149:36:33",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "id": 13501,
                                            "nodeType": "ExpressionStatement",
                                            "src": "16149:36:33"
                                          }
                                        ]
                                      },
                                      "errorName": "",
                                      "id": 13503,
                                      "nodeType": "TryCatchClause",
                                      "parameters": {
                                        "id": 13497,
                                        "nodeType": "ParameterList",
                                        "parameters": [
                                          {
                                            "constant": false,
                                            "id": 13496,
                                            "mutability": "mutable",
                                            "name": "_evmPartialReward",
                                            "nameLocation": "16089:17:33",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 13503,
                                            "src": "16081:25:33",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            "typeName": {
                                              "id": 13495,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "16081:7:33",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "visibility": "internal"
                                          }
                                        ],
                                        "src": "16058:67:33"
                                      },
                                      "src": "16050:173:33"
                                    },
                                    {
                                      "block": {
                                        "id": 13513,
                                        "nodeType": "Block",
                                        "src": "16259:188:33",
                                        "statements": [
                                          {
                                            "eventCall": {
                                              "arguments": [
                                                {
                                                  "expression": {
                                                    "id": 13508,
                                                    "name": "_responseReport",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13452,
                                                    "src": "16329:15:33",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                                      "typeString": "struct Witnet.DataPullReport calldata"
                                                    }
                                                  },
                                                  "id": 13509,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberLocation": "16345:7:33",
                                                  "memberName": "queryId",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 37245,
                                                  "src": "16329:23:33",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                                    "typeString": "Witnet.QueryId"
                                                  }
                                                },
                                                {
                                                  "id": 13510,
                                                  "name": "_reason",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 13505,
                                                  "src": "16379:7:33",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                                    "typeString": "Witnet.QueryId"
                                                  },
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 13507,
                                                "name": "BatchQueryError",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 27067,
                                                "src": "16287:15:33",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_string_memory_ptr_$returns$__$",
                                                  "typeString": "function (Witnet.QueryId,string memory)"
                                                }
                                              },
                                              "id": 13511,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "16287:122:33",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$",
                                                "typeString": "tuple()"
                                              }
                                            },
                                            "id": 13512,
                                            "nodeType": "EmitStatement",
                                            "src": "16282:127:33"
                                          }
                                        ]
                                      },
                                      "errorName": "Error",
                                      "id": 13514,
                                      "nodeType": "TryCatchClause",
                                      "parameters": {
                                        "id": 13506,
                                        "nodeType": "ParameterList",
                                        "parameters": [
                                          {
                                            "constant": false,
                                            "id": 13505,
                                            "mutability": "mutable",
                                            "name": "_reason",
                                            "nameLocation": "16250:7:33",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 13514,
                                            "src": "16236:21:33",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_memory_ptr",
                                              "typeString": "string"
                                            },
                                            "typeName": {
                                              "id": 13504,
                                              "name": "string",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "16236:6:33",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage_ptr",
                                                "typeString": "string"
                                              }
                                            },
                                            "visibility": "internal"
                                          }
                                        ],
                                        "src": "16235:23:33"
                                      },
                                      "src": "16224:223:33"
                                    },
                                    {
                                      "block": {
                                        "id": 13525,
                                        "nodeType": "Block",
                                        "src": "16469:196:33",
                                        "statements": [
                                          {
                                            "eventCall": {
                                              "arguments": [
                                                {
                                                  "expression": {
                                                    "id": 13519,
                                                    "name": "_responseReport",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 13452,
                                                    "src": "16539:15:33",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                                      "typeString": "struct Witnet.DataPullReport calldata"
                                                    }
                                                  },
                                                  "id": 13520,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberLocation": "16555:7:33",
                                                  "memberName": "queryId",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 37245,
                                                  "src": "16539:23:33",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                                    "typeString": "Witnet.QueryId"
                                                  }
                                                },
                                                {
                                                  "arguments": [],
                                                  "expression": {
                                                    "argumentTypes": [],
                                                    "id": 13521,
                                                    "name": "_revertUnhandledExceptionReason",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 11046,
                                                    "src": "16589:31:33",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_function_internal_pure$__$returns$_t_string_memory_ptr_$",
                                                      "typeString": "function () pure returns (string memory)"
                                                    }
                                                  },
                                                  "id": 13522,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "kind": "functionCall",
                                                  "lValueRequested": false,
                                                  "nameLocations": [],
                                                  "names": [],
                                                  "nodeType": "FunctionCall",
                                                  "src": "16589:33:33",
                                                  "tryCall": false,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                                    "typeString": "Witnet.QueryId"
                                                  },
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 13518,
                                                "name": "BatchQueryError",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 27067,
                                                "src": "16497:15:33",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_string_memory_ptr_$returns$__$",
                                                  "typeString": "function (Witnet.QueryId,string memory)"
                                                }
                                              },
                                              "id": 13523,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "16497:148:33",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$",
                                                "typeString": "tuple()"
                                              }
                                            },
                                            "id": 13524,
                                            "nodeType": "EmitStatement",
                                            "src": "16492:153:33"
                                          }
                                        ]
                                      },
                                      "errorName": "",
                                      "id": 13526,
                                      "nodeType": "TryCatchClause",
                                      "parameters": {
                                        "id": 13517,
                                        "nodeType": "ParameterList",
                                        "parameters": [
                                          {
                                            "constant": false,
                                            "id": 13516,
                                            "mutability": "mutable",
                                            "name": "",
                                            "nameLocation": "-1:-1:-1",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 13526,
                                            "src": "16455:12:33",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes"
                                            },
                                            "typeName": {
                                              "id": 13515,
                                              "name": "bytes",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "16455:5:33",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                              }
                                            },
                                            "visibility": "internal"
                                          }
                                        ],
                                        "src": "16454:14:33"
                                      },
                                      "src": "16448:217:33"
                                    }
                                  ],
                                  "externalCall": {
                                    "arguments": [
                                      {
                                        "id": 13483,
                                        "name": "evmReporter",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13464,
                                        "src": "15773:11:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "id": 13484,
                                        "name": "evmGasPrice",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13466,
                                        "src": "15807:11:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "id": 13485,
                                        "name": "evmFinalityBlock",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13468,
                                        "src": "15841:16:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "id": 13489,
                                            "name": "queryId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 13471,
                                            "src": "15902:7:33",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                              "typeString": "Witnet.QueryId"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                              "typeString": "Witnet.QueryId"
                                            }
                                          ],
                                          "expression": {
                                            "expression": {
                                              "id": 13486,
                                              "name": "Witnet",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 40741,
                                              "src": "15880:6:33",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                                "typeString": "type(library Witnet)"
                                              }
                                            },
                                            "id": 13487,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "15887:7:33",
                                            "memberName": "QueryId",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 37151,
                                            "src": "15880:14:33",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                              "typeString": "type(Witnet.QueryId)"
                                            }
                                          },
                                          "id": 13488,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "15895:6:33",
                                          "memberName": "unwrap",
                                          "nodeType": "MemberAccess",
                                          "src": "15880:21:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_QueryId_$37151_$returns$_t_uint64_$",
                                            "typeString": "function (Witnet.QueryId) pure returns (uint64)"
                                          }
                                        },
                                        "id": 13490,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "15880:30:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      {
                                        "id": 13491,
                                        "name": "witDrResultTimestamp",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13474,
                                        "src": "15933:20:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                          "typeString": "Witnet.Timestamp"
                                        }
                                      },
                                      {
                                        "id": 13492,
                                        "name": "witDrTxHash",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13477,
                                        "src": "15976:11:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                          "typeString": "Witnet.TransactionHash"
                                        }
                                      },
                                      {
                                        "id": 13493,
                                        "name": "witDrResultCborBytes",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13479,
                                        "src": "16010:20:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        },
                                        {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        },
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                          "typeString": "Witnet.Timestamp"
                                        },
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                          "typeString": "Witnet.TransactionHash"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "expression": {
                                        "id": 13481,
                                        "name": "WitOracleDataLib",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20110,
                                        "src": "15721:16:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                          "typeString": "type(library WitOracleDataLib)"
                                        }
                                      },
                                      "id": 13482,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "15738:12:33",
                                      "memberName": "reportResult",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 19691,
                                      "src": "15721:29:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                                        "typeString": "function (address,uint256,uint64,uint256,Witnet.Timestamp,Witnet.TransactionHash,bytes memory) returns (uint256)"
                                      }
                                    },
                                    "id": 13494,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "15721:328:33",
                                    "tryCall": true,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 13527,
                                  "nodeType": "TryStatement",
                                  "src": "15717:948:33"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 13529,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 13480,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 13464,
                                  "mutability": "mutable",
                                  "name": "evmReporter",
                                  "nameLocation": "15388:11:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15380:19:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  "typeName": {
                                    "id": 13463,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15380:7:33",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 13466,
                                  "mutability": "mutable",
                                  "name": "evmGasPrice",
                                  "nameLocation": "15426:11:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15418:19:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 13465,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15418:7:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 13468,
                                  "mutability": "mutable",
                                  "name": "evmFinalityBlock",
                                  "nameLocation": "15464:16:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15456:24:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  "typeName": {
                                    "id": 13467,
                                    "name": "uint64",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15456:6:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 13471,
                                  "mutability": "mutable",
                                  "name": "queryId",
                                  "nameLocation": "15514:7:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15499:22:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                    "typeString": "Witnet.QueryId"
                                  },
                                  "typeName": {
                                    "id": 13470,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 13469,
                                      "name": "Witnet.QueryId",
                                      "nameLocations": [
                                        "15499:6:33",
                                        "15506:7:33"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 37151,
                                      "src": "15499:14:33"
                                    },
                                    "referencedDeclaration": 37151,
                                    "src": "15499:14:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                      "typeString": "Witnet.QueryId"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 13474,
                                  "mutability": "mutable",
                                  "name": "witDrResultTimestamp",
                                  "nameLocation": "15557:20:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15540:37:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                    "typeString": "Witnet.Timestamp"
                                  },
                                  "typeName": {
                                    "id": 13473,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 13472,
                                      "name": "Witnet.Timestamp",
                                      "nameLocations": [
                                        "15540:6:33",
                                        "15547:9:33"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 37157,
                                      "src": "15540:16:33"
                                    },
                                    "referencedDeclaration": 37157,
                                    "src": "15540:16:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                      "typeString": "Witnet.Timestamp"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 13477,
                                  "mutability": "mutable",
                                  "name": "witDrTxHash",
                                  "nameLocation": "15619:11:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15596:34:33",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                    "typeString": "Witnet.TransactionHash"
                                  },
                                  "typeName": {
                                    "id": 13476,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 13475,
                                      "name": "Witnet.TransactionHash",
                                      "nameLocations": [
                                        "15596:6:33",
                                        "15603:15:33"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 37159,
                                      "src": "15596:22:33"
                                    },
                                    "referencedDeclaration": 37159,
                                    "src": "15596:22:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                      "typeString": "Witnet.TransactionHash"
                                    }
                                  },
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 13479,
                                  "mutability": "mutable",
                                  "name": "witDrResultCborBytes",
                                  "nameLocation": "15662:20:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13529,
                                  "src": "15649:33:33",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 13478,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15649:5:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "15361:336:33"
                            },
                            "src": "15353:1341:33"
                          },
                          {
                            "block": {
                              "id": 13539,
                              "nodeType": "Block",
                              "src": "16730:156:33",
                              "statements": [
                                {
                                  "eventCall": {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "id": 13534,
                                          "name": "_responseReport",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13452,
                                          "src": "16792:15:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                            "typeString": "struct Witnet.DataPullReport calldata"
                                          }
                                        },
                                        "id": 13535,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "16808:7:33",
                                        "memberName": "queryId",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 37245,
                                        "src": "16792:23:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        }
                                      },
                                      {
                                        "id": 13536,
                                        "name": "_reason",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 13531,
                                        "src": "16838:7:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        },
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 13533,
                                      "name": "BatchQueryError",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 27067,
                                      "src": "16754:15:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (Witnet.QueryId,string memory)"
                                      }
                                    },
                                    "id": 13537,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "16754:110:33",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 13538,
                                  "nodeType": "EmitStatement",
                                  "src": "16749:115:33"
                                }
                              ]
                            },
                            "errorName": "Error",
                            "id": 13540,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 13532,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 13531,
                                  "mutability": "mutable",
                                  "name": "_reason",
                                  "nameLocation": "16721:7:33",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13540,
                                  "src": "16707:21:33",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string"
                                  },
                                  "typeName": {
                                    "id": 13530,
                                    "name": "string",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16707:6:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage_ptr",
                                      "typeString": "string"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "16706:23:33"
                            },
                            "src": "16695:191:33"
                          },
                          {
                            "block": {
                              "id": 13551,
                              "nodeType": "Block",
                              "src": "16908:176:33",
                              "statements": [
                                {
                                  "eventCall": {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "id": 13545,
                                          "name": "_responseReport",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 13452,
                                          "src": "16970:15:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                            "typeString": "struct Witnet.DataPullReport calldata"
                                          }
                                        },
                                        "id": 13546,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "16986:7:33",
                                        "memberName": "queryId",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 37245,
                                        "src": "16970:23:33",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        }
                                      },
                                      {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 13547,
                                          "name": "_revertUnhandledExceptionReason",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 11046,
                                          "src": "17016:31:33",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_string_memory_ptr_$",
                                            "typeString": "function () pure returns (string memory)"
                                          }
                                        },
                                        "id": 13548,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17016:33:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                          "typeString": "Witnet.QueryId"
                                        },
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 13544,
                                      "name": "BatchQueryError",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 27067,
                                      "src": "16932:15:33",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_QueryId_$37151_$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (Witnet.QueryId,string memory)"
                                      }
                                    },
                                    "id": 13549,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "16932:136:33",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 13550,
                                  "nodeType": "EmitStatement",
                                  "src": "16927:141:33"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 13552,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 13543,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 13542,
                                  "mutability": "mutable",
                                  "name": "",
                                  "nameLocation": "-1:-1:-1",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 13552,
                                  "src": "16894:12:33",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 13541,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16894:5:33",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "16893:14:33"
                            },
                            "src": "16887:197:33"
                          }
                        ],
                        "externalCall": {
                          "arguments": [
                            {
                              "id": 13459,
                              "name": "_responseReport",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13452,
                              "src": "15242:15:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              }
                            },
                            {
                              "id": 13460,
                              "name": "QUERY_AWAITING_BLOCKS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12554,
                              "src": "15276:21:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 13461,
                              "name": "QUERY_REPORTING_STAKE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12557,
                              "src": "15316:21:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                                "typeString": "struct Witnet.DataPullReport calldata"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 13457,
                              "name": "WitOracleTrustlessDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22249,
                              "src": "15167:25:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 13458,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "15193:30:33",
                            "memberName": "reportQueryResponseTrustlessly",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 21453,
                            "src": "15167:56:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_DataPullReport_$37259_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$_t_uint64_$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_bytes_memory_ptr_$",
                              "typeString": "function (struct Witnet.DataPullReport memory,uint256,uint256) returns (address,uint256,uint64,Witnet.QueryId,Witnet.Timestamp,Witnet.TransactionHash,bytes memory)"
                            }
                          },
                          "id": 13462,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15167:185:33",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$_t_uint64_$_t_userDefinedValueType$_QueryId_$37151_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_bytes_memory_ptr_$",
                            "typeString": "tuple(address,uint256,uint64,Witnet.QueryId,Witnet.Timestamp,Witnet.TransactionHash,bytes memory)"
                          }
                        },
                        "id": 13553,
                        "nodeType": "TryStatement",
                        "src": "15163:1921:33"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 13444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 13441,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13438,
                      "src": "15024:3:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 13442,
                        "name": "_responseReports",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13431,
                        "src": "15030:16:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_DataPullReport_$37259_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.DataPullReport calldata[] calldata"
                        }
                      },
                      "id": 13443,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15047:6:33",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "15030:23:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15024:29:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13555,
                  "initializationExpression": {
                    "assignments": [
                      13438
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 13438,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "15015:3:33",
                        "nodeType": "VariableDeclaration",
                        "scope": 13555,
                        "src": "15010:8:33",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 13437,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15010:4:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 13440,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 13439,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15021:1:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15010:12:33"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 13446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15055:6:33",
                      "subExpression": {
                        "id": 13445,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13438,
                        "src": "15055:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 13447,
                    "nodeType": "ExpressionStatement",
                    "src": "15055:6:33"
                  },
                  "nodeType": "ForStatement",
                  "src": "15005:2090:33"
                }
              ]
            },
            "functionSelector": "1f08f481",
            "id": 13557,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reportQueryResponseBatch",
            "nameLocation": "14834:24:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13433,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14927:8:33"
            },
            "parameters": {
              "id": 13432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13431,
                  "mutability": "mutable",
                  "name": "_responseReports",
                  "nameLocation": "14892:16:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13557,
                  "src": "14859:49:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_DataPullReport_$37259_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct Witnet.DataPullReport[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13429,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 13428,
                        "name": "Witnet.DataPullReport",
                        "nameLocations": [
                          "14859:6:33",
                          "14866:14:33"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37259,
                        "src": "14859:21:33"
                      },
                      "referencedDeclaration": 37259,
                      "src": "14859:21:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                        "typeString": "struct Witnet.DataPullReport"
                      }
                    },
                    "id": 13430,
                    "nodeType": "ArrayTypeName",
                    "src": "14859:23:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_DataPullReport_$37259_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.DataPullReport[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14858:51:33"
            },
            "returnParameters": {
              "id": 13436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13435,
                  "mutability": "mutable",
                  "name": "_evmTotalReward",
                  "nameLocation": "14972:15:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13557,
                  "src": "14964:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13434,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14964:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14963:25:33"
            },
            "scope": 13608,
            "src": "14825:2277:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27124
            ],
            "body": {
              "id": 13606,
              "nodeType": "Block",
              "src": "17411:547:33",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 13586,
                        "nodeType": "Block",
                        "src": "17734:44:33",
                        "statements": [
                          {
                            "expression": {
                              "id": 13584,
                              "name": "_evmReward",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13582,
                              "src": "17756:10:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "functionReturnParameters": 13572,
                            "id": 13585,
                            "nodeType": "Return",
                            "src": "17749:17:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13587,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13583,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13582,
                            "mutability": "mutable",
                            "name": "_evmReward",
                            "nameLocation": "17712:10:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13587,
                            "src": "17704:18:33",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 13581,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "17704:7:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "17689:44:33"
                      },
                      "src": "17681:97:33"
                    },
                    {
                      "block": {
                        "id": 13595,
                        "nodeType": "Block",
                        "src": "17823:43:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 13592,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13589,
                                  "src": "17846:7:33",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 13591,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "17838:7:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 13593,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "17838:16:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13594,
                            "nodeType": "ExpressionStatement",
                            "src": "17838:16:33"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 13596,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13590,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13589,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "17814:7:33",
                            "nodeType": "VariableDeclaration",
                            "scope": 13596,
                            "src": "17800:21:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 13588,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "17800:6:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "17799:23:33"
                      },
                      "src": "17788:78:33"
                    },
                    {
                      "block": {
                        "id": 13603,
                        "nodeType": "Block",
                        "src": "17897:54:33",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 13600,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11028,
                                "src": "17912:25:33",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 13601,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "17912:27:33",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 13602,
                            "nodeType": "ExpressionStatement",
                            "src": "17912:27:33"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 13604,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 13599,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 13598,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 13604,
                            "src": "17883:12:33",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 13597,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "17883:5:33",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "17882:14:33"
                      },
                      "src": "17876:75:33"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 13575,
                        "name": "_witOracleRollup",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13561,
                        "src": "17491:16:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        }
                      },
                      {
                        "id": 13576,
                        "name": "_responseReport",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13564,
                        "src": "17522:15:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                          "typeString": "struct Witnet.DataPullReport calldata"
                        }
                      },
                      {
                        "id": 13577,
                        "name": "_queryResponseReportMerkleProof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13567,
                        "src": "17552:31:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "id": 13578,
                        "name": "QUERY_AWAITING_BLOCKS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12554,
                        "src": "17598:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 13579,
                        "name": "QUERY_REPORTING_STAKE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12557,
                        "src": "17634:21:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        },
                        {
                          "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                          "typeString": "struct Witnet.DataPullReport calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 13573,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "17426:25:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 13574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "17452:24:33",
                      "memberName": "rollupQueryResponseProof",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 21788,
                      "src": "17426:50:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$_t_struct$_DataPullReport_$37259_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (struct Witnet.FastForward memory[] memory,struct Witnet.DataPullReport memory,bytes32[] memory,uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 13580,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17426:254:33",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 13605,
                  "nodeType": "TryStatement",
                  "src": "17422:529:33"
                }
              ]
            },
            "functionSelector": "fc140d77",
            "id": 13607,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rollupQueryResponseProof",
            "nameLocation": "17119:24:33",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 13569,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "17361:8:33"
            },
            "parameters": {
              "id": 13568,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13561,
                  "mutability": "mutable",
                  "name": "_witOracleRollup",
                  "nameLocation": "17188:16:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13607,
                  "src": "17158:46:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct Witnet.FastForward[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13559,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 13558,
                        "name": "Witnet.FastForward",
                        "nameLocations": [
                          "17158:6:33",
                          "17165:11:33"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37306,
                        "src": "17158:18:33"
                      },
                      "referencedDeclaration": 37306,
                      "src": "17158:18:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                        "typeString": "struct Witnet.FastForward"
                      }
                    },
                    "id": 13560,
                    "nodeType": "ArrayTypeName",
                    "src": "17158:20:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.FastForward[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13564,
                  "mutability": "mutable",
                  "name": "_responseReport",
                  "nameLocation": "17251:15:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13607,
                  "src": "17220:46:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPullReport_$37259_calldata_ptr",
                    "typeString": "struct Witnet.DataPullReport"
                  },
                  "typeName": {
                    "id": 13563,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 13562,
                      "name": "Witnet.DataPullReport",
                      "nameLocations": [
                        "17220:6:33",
                        "17227:14:33"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37259,
                      "src": "17220:21:33"
                    },
                    "referencedDeclaration": 37259,
                    "src": "17220:21:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPullReport_$37259_storage_ptr",
                      "typeString": "struct Witnet.DataPullReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13567,
                  "mutability": "mutable",
                  "name": "_queryResponseReportMerkleProof",
                  "nameLocation": "17300:31:33",
                  "nodeType": "VariableDeclaration",
                  "scope": 13607,
                  "src": "17281:50:33",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13565,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "17281:7:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 13566,
                    "nodeType": "ArrayTypeName",
                    "src": "17281:9:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17143:199:33"
            },
            "returnParameters": {
              "id": 13572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13571,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 13607,
                  "src": "17397:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13570,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17397:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17396:9:33"
            },
            "scope": 13608,
            "src": "17110:848:33",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 13609,
        "src": "426:17535:33",
        "usedErrors": [
          26521
        ],
        "usedEvents": [
          26543,
          26836,
          26848,
          26856,
          26863,
          26875,
          26891,
          27067,
          27636,
          45529,
          45535,
          45541,
          45547,
          45553,
          45721,
          45727
        ]
      }
    ],
    "src": "35:17928:33"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.497Z",
  "devdoc": {
    "author": "The Witnet Foundation",
    "kind": "dev",
    "methods": {
      "deleteQuery(uint256)": {
        "details": "Fails if the query is not in a final status, or not called from the actual requester."
      },
      "estimateBaseFee(uint256)": {
        "params": {
          "_evmGasPrice": "Expected gas price to pay upon posting the data request."
        }
      },
      "estimateBaseFeeWithCallback(uint256,uint24)": {
        "params": {
          "_evmCallbackGasLimit": "Maximum gas to be spent when reporting the data request result.",
          "_evmGasPrice": "Expected gas price to pay upon posting the data request."
        }
      },
      "estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))": {
        "details": "The extra fee gets calculated in proportion to:",
        "params": {
          "_evmGasPrice": "Tentative EVM gas price at the moment the query result is ready.",
          "_evmWitPrice": "Tentative nanoWit price in Wei at the moment the query is solved on the Wit/Oracle blockchain.",
          "_querySLA": "The query SLA data security parameters as required for the Wit/Oracle blockchain. "
        }
      },
      "getQueryRequest(uint64)": {
        "params": {
          "_queryId": "The unique query identifier."
        }
      },
      "getQueryResponse(uint64)": {
        "details": "Fails if the `_queryId` is not in 'Reported' status.",
        "params": {
          "_queryId": "The unique query identifier"
        }
      },
      "upgradeQueryEvmReward(uint256)": {
        "details": "Fails if the `_queryId` is not in 'Posted' status.",
        "params": {
          "_queryId": "The unique query identifier."
        }
      }
    },
    "title": "Queriable WitOracle \"trustless\" base implementation.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "WitOracleQuery(address,uint256,uint256,uint64,bytes32,(uint16,uint16,uint64))": {
        "notice": "Emitted every time a new query containing some verified data request is posted to the WitOracle."
      },
      "WitOracleQueryReport(uint64,uint256)": {
        "notice": "Emitted when a query with no callback gets reported into the WRB."
      },
      "WitOracleQueryReportDelivery(uint64,address,uint256,uint256)": {
        "notice": "Emitted when a query with a callback gets successfully reported into the WRB."
      },
      "WitOracleQueryUpgrade(uint64,address,uint256,uint256)": {
        "notice": "Emitted when the reward of some not-yet reported query gets upgraded."
      },
      "WitOracleResportDeliveryFailed(uint64,address,uint256,uint256,string,bytes)": {
        "notice": "Emitted when a query with a callback cannot get reported into the WRB."
      }
    },
    "kind": "user",
    "methods": {
      "QUERY_AWAITING_BLOCKS()": {
        "notice": "Number of blocks to await for either a dispute or a proven response to some query."
      },
      "QUERY_REPORTING_STAKE()": {
        "notice": "Amount in wei to be staked upon reporting or disputing some query."
      },
      "channel()": {
        "notice": "Uniquely identifies the WitOracle instance and the chain on which it's deployed."
      },
      "class()": {
        "notice": "Returns the name of the actual contract implementing the logic of this Witnet appliance."
      },
      "deleteQuery(uint256)": {
        "notice": "Removes all query data from storage. Pays back reward on expired queries."
      },
      "estimateBaseFee(uint256)": {
        "notice": "Estimate the minimum reward required for posting a data request."
      },
      "estimateBaseFeeWithCallback(uint256,uint24)": {
        "notice": "Estimate the minimum reward required for posting a data request with a callback."
      },
      "estimateExtraFee(uint256,uint256,(uint16,uint16,uint64))": {
        "notice": "Estimate the extra reward (i.e. over the base fee) to be paid when posting a newdata query in order to avoid getting provable \"too low incentives\" results fromthe Wit/Oracle blockchain. "
      },
      "getNextQueryId()": {
        "notice": "Returns next query id to be generated by the Witnet Request Board."
      },
      "getQuery(uint64)": {
        "notice": "Gets the whole Query data contents, if any, no matter its current status."
      },
      "getQueryEvmReward(uint256)": {
        "notice": "Gets the current EVM reward the report can claim, if not done yet."
      },
      "getQueryRequest(uint64)": {
        "notice": "Retrieves the RAD hash and SLA parameters of the given query."
      },
      "getQueryResponse(uint64)": {
        "notice": "Retrieves the Witnet-provable result, and metadata, to a previously posted request.    "
      },
      "getQueryResultTrails(uint256)": {
        "notice": "Gets query's result back tracing trails"
      },
      "registry()": {
        "notice": "Returns the WitOracleRadonRegistry in which Witnet-compliant Radon requestscan be formally verified and forever registered as a away to let smart contracts and users to track actual data sources and offchain computations applied on data updates safely reported from the Wit/Oracle blockchain. "
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      },
      "upgradeQueryEvmReward(uint256)": {
        "notice": "Increments the reward of a previously posted request by adding the transaction value to it."
      }
    },
    "version": 1
  }
}