{
  "contractName": "WitOracleBasePushOnlyTrustable",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidDataReport",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ReentrancyGuardReentrantCall",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "reporters",
          "type": "address[]"
        }
      ],
      "name": "ReportersSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "reporters",
          "type": "address[]"
        }
      ],
      "name": "ReportersUnset",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "baseAddr",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "baseCodehash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "versionTag",
          "type": "string"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": 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"
    },
    {
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "base",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "channel",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "codehash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_codehash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deployer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_initData",
          "type": "bytes"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isUpgradable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        }
      ],
      "name": "isUpgradableFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "registry",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "_report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "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": "_result",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "_report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "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": "address",
          "name": "_queryResponseReporter",
          "type": "address"
        }
      ],
      "name": "isReporter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_queryResponseReporters",
          "type": "address[]"
        }
      ],
      "name": "setReporters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_exReporters",
          "type": "address[]"
        }
      ],
      "name": "unsetReporters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDataReport\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"reporters\",\"type\":\"address[]\"}],\"name\":\"ReportersSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"reporters\",\"type\":\"address[]\"}],\"name\":\"ReportersUnset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"baseAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"baseCodehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"versionTag\",\"type\":\"string\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":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\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"base\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"channel\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"codehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codehash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_initData\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_queryResponseReporter\",\"type\":\"address\"}],\"name\":\"isReporter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUpgradable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"}],\"name\":\"isUpgradableFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"_report\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"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\":\"_result\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"_report\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"pushDataReport\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"uint8\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_queryResponseReporters\",\"type\":\"address[]\"}],\"name\":\"setReporters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_exReporters\",\"type\":\"address[]\"}],\"name\":\"unsetReporters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address,address,bytes32,string)\":{\"params\":{\"baseAddr\":\"The address of the new implementation contract.\",\"baseCodehash\":\"The EVM-codehash of the new implementation contract.\",\"from\":\"The address who ordered the upgrading. Namely, the WRB operator in \\\"trustable\\\" implementations.\",\"versionTag\":\"Ascii-encoded version literal with which the implementation deployer decided to tag it.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"base()\":{\"details\":\"Retrieves base contract. Differs from address(this) when called via delegate-proxy pattern.\"},\"codehash()\":{\"details\":\"Retrieves the immutable codehash of this contract, even if invoked as delegatecall.\"},\"initialize(bytes)\":{\"details\":\"Must fail when trying to upgrade to same logic contract more than once.\"},\"isReporter(address)\":{\"params\":{\"_queryResponseReporter\":\"The address to be checked.\"}},\"isUpgradable()\":{\"details\":\"Determines whether the logic of this contract is potentially upgradable.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setReporters(address[])\":{\"details\":\"Can only be called from the owner address.Emits the `ReportersSet` event. \",\"params\":{\"_queryResponseReporters\":\"List of addresses to be added to the active reporters control list.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"unsetReporters(address[])\":{\"details\":\"Can only be called from the owner address.Emits the `ReportersUnset` event. \",\"params\":{\"_exReporters\":\"List of addresses to be added to the active reporters control list.\"}}},\"title\":\"Push-only WitOracle \\\"trustable\\\" base implementation.\",\"version\":1},\"userdoc\":{\"events\":{\"Upgraded(address,address,bytes32,string)\":{\"notice\":\"Emitted every time the contract gets upgraded.\"}},\"kind\":\"user\",\"methods\":{\"channel()\":{\"notice\":\"Uniquely identifies the WitOracle instance and the chain on which it's deployed.\"},\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"initialize(bytes)\":{\"notice\":\"Re-initialize contract's storage context upon a new upgrade from a proxy.\"},\"isReporter(address)\":{\"notice\":\"Tells whether given address is included in the active reporters control list.\"},\"isUpgradableFrom(address)\":{\"notice\":\"Tells whether provided address could eventually upgrade the contract.\"},\"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. \"},\"setReporters(address[])\":{\"notice\":\"Adds given addresses to the active reporters control list.\"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"unsetReporters(address[])\":{\"notice\":\"Removes given addresses from the active reporters control list.\"},\"version()\":{\"notice\":\"Retrieves human-readable version tag of current implementation.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/base/WitOracleBasePushOnlyTrustable.sol\":\"WitOracleBasePushOnlyTrustable\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"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/WitnetProxy.sol\":{\"keccak256\":\"0x6f0ec2c544192c9439bde88f5ed4efec5bdef506cb0dcb739c29329a798033fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca05338334632aab3aef3c17a4b8686251ec488da49b9fcd3712642e57e0ce2a\",\"dweb:/ipfs/QmZk1uDdytKFii4TXUnJkFBBB3CZVSPKKR85ugFjWUTufS\"]},\"project:/contracts/core/WitnetUpgradableBase.sol\":{\"keccak256\":\"0x4cea0415b77897e151454ce87c1e20b7dc9f232de72b54a6740c90e076f7e1b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0b803611c3a863ac5806b16e7d2a48b0e062fece262c750d121b5e9e17eb082\",\"dweb:/ipfs/QmVhFt1TkbkZ48jLsN5LgnpzpTdoMbfqGyMSJxjaEqisht\"]},\"project:/contracts/core/base/WitOracleBasePushOnly.sol\":{\"keccak256\":\"0xdf4be00f732674d6a1a83fbb5801571690623a17b7388613af3a3debadf9ce2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b4b8a611ed9186249e30fcaeecc1d7bbda50338e794d5b65865f885f20ec6e\",\"dweb:/ipfs/Qme8xqsdQqdyDuy1DYijquG6LGJHqRzyruZ1MR6hPJCxmY\"]},\"project:/contracts/core/base/WitOracleBasePushOnlyTrustable.sol\":{\"keccak256\":\"0xc9a75fab2ac39e0381210b3ea08507a90887294d48ad2b8565a4ae0a85cf4b28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9c4fcb2d143b73c0a4d9b7a77a5221a792c86db6a449c7ac9c35578d14f7ab\",\"dweb:/ipfs/Qmbjj2GTiN62MAZKW1Xq4CSfzrYWjW7p7qk8S7CJWrQPob\"]},\"project:/contracts/data/WitOracleDataLib.sol\":{\"keccak256\":\"0x879c513c3cac839300e954d5ffe61c14eaec3052b39898ec2402068169fddd55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f58f4aa26e2a174fb5cee2fd9c06a10c337e6766b804e38bb4bbb3c3d4682d\",\"dweb:/ipfs/QmTjS8hws4VAd3S8dpNmX3zyV7oCF7xJ7AZTRJwrmbhSmi\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleQueriable.sol\":{\"keccak256\":\"0xdb0da1e377a35a7d620f43cb583a876750a52d91da2b888f48042483ad9c4910\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfcdf3e96ec3c5de7438f82e3d5a1dc9af9eb29080044213dccb26ff978354c\",\"dweb:/ipfs/Qmap2FzSysh2fug88eortbsTM7itFygRzKc9HfV43ePMik\"]},\"project:/contracts/interfaces/IWitOracleQueriableConsumer.sol\":{\"keccak256\":\"0xe8143d2387d674022f453b57652998f53cbe4c21fe35e59421428142355c8ebf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e6c3e3d3e7168a3fb75b1eca23d078d5240e5b02dac8a449d1ddf79256a34d8\",\"dweb:/ipfs/QmbGk4tQzTogTBVYiT8t3Gqtk6qDs5nyp9Z53GryTjKAm5\"]},\"project:/contracts/interfaces/IWitOracleQueriableEvents.sol\":{\"keccak256\":\"0x47c283e931006d35bd2599524f86724e45eae6fad2fdd9cdecd1c85a90ff3f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ad0520f99ec9298536ae9434f58caeb470c10dd3eaab1e4c7ed4cae9a97e2a2\",\"dweb:/ipfs/QmSuYCsSPweZfQc5Fbf9jYDdx4u7gwYCUdjhpcrrxmWZy6\"]},\"project:/contracts/interfaces/IWitOracleQueriableExperimental.sol\":{\"keccak256\":\"0x57c0007d813ed3e6dd3e0bb128e6ca7a0324214962823c6456e2e37d78ab4070\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5edc498ccc728327f1f3c80d2decd7ca64920a3aee4faaba08dd354f1256b66\",\"dweb:/ipfs/QmdEJWUtQqTVdFLCiNKUPSe3NwXzuHmG6XzA1VbHHHgdPy\"]},\"project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol\":{\"keccak256\":\"0x043a719845d75dccc3c7c046fdd214bb252ab2b85400fbd139ed5cea9469becc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b1be7cbf990ff4d383b1c0695626af794442f9a48f02e13435793c4316ff011\",\"dweb:/ipfs/QmX3Lq17FMsN2T9K4fAYg6CRTYjwHd6hT1XKjEA2T7QeM5\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistryEvents.sol\":{\"keccak256\":\"0x9bd30477aeb33de11c4f1df3cd7451452a90ffed1f6eabd9e643046bf1e60d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fb38c5528ed2e1bf90ff8d123bf5a9523d0dc49f448d6c39ddad1cd9048d0a\",\"dweb:/ipfs/QmQq1RUwFgnGTk3xDAmN6u2WMPBzvjZNJc7TPYtG6aZfRn\"]},\"project:/contracts/interfaces/IWitOracleTrustableAdmin.sol\":{\"keccak256\":\"0x94b69b5a460d1407746ac70d32a0c5d4fca564b16cbd1940b822dd0ecb5336e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a773b9d963647a5591b95c8fb359efd461dc494d1e3a1754cc83343310e07605\",\"dweb:/ipfs/QmU77Zre43r5sVj4DK2FjTda31zWgNDr9sGPug1dRv4ih6\"]},\"project:/contracts/interfaces/legacy/IWitOracleLegacy.sol\":{\"keccak256\":\"0xd2929c9aa5a02d261d6d1a068a6b7231ae58d8f81f081ba89f2d3267a31fbbb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://956b26323a02cf400c32012586954fc5dbc98b4d5b7a8b0533401cbda8619059\",\"dweb:/ipfs/QmSWdCRwL5t3atFM8osdaohLTqEEmY1FbnR6xrRCmw1GDM\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequest.sol\":{\"keccak256\":\"0x0fb3f0ba03f4f7a0214ecb36df26525564cf51a8a2176cba92c185af8a1d419e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://340b7bdb92c3259519fe120eb3061b393e7a5e9c1b576a2fe4eab020af466b64\",\"dweb:/ipfs/QmRt4wMX9WdxFwfdFMUZ3zKMAW1grS7qLk1x1PDMJdEAVU\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequestTemplate.sol\":{\"keccak256\":\"0x9e065ef5880c64eefff5fcfb1347fde6684e0e311f8c2350a6aefdbd1f8b0f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://817de760c7cce9d00dcd4312aea6434d88abddf1c0e68ea7e8fb1e6c5165a445\",\"dweb:/ipfs/QmUNmtn85nFXbje2nRJQY2h65KJCVinDMMU6P2jQmo1Nij\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/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/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]},\"project:/contracts/patterns/Ownable.sol\":{\"keccak256\":\"0x494bda32f9a218d9c33ea82112129c0933ab52f57eabfbf0d14a8742a3370800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c4cf04ebb052fed9d15cf93ff4523955ee311aa4425ee85f0e80b4489c94e76\",\"dweb:/ipfs/QmfMf4WD7woTaQSTbJxxoan2aXSeY7ovY5NoipSBw5rMPK\"]},\"project:/contracts/patterns/Ownable2Step.sol\":{\"keccak256\":\"0x45ed9d1f98e2a7a5bd1a7040dbd4292f1458fa1cb212d0143718684efa436bd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d347c5ef492b33dcf3953bb3911fe7160a6c812e69ed84d2511f0847e19229\",\"dweb:/ipfs/QmZp3icE2gQBoJp8KorWC1GfGC8mK29sK9fEveKRMNCY1U\"]},\"project:/contracts/patterns/Proxiable.sol\":{\"keccak256\":\"0x86032205378fed9ed2bf155eed8ce4bdbb13b7f5960850c6d50954a38b61a3d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f89978eda4244a13f42a6092a94ac829bb3e38c92d77d4978b9f32894b187a63\",\"dweb:/ipfs/Qmbc1XaFCvLm3Sxvh7tP29Ug32jBGy3avsCqBGAptxs765\"]},\"project:/contracts/patterns/ReentrancyGuard.sol\":{\"keccak256\":\"0x1470caf4bd78b79f706e28a8a85c95a6e13ec33eda04275e5da84464130831e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c974fb4dc29718a84f9ab5fa3f8c25c7f889050a38445e16c3ead5ff9d4b4bab\",\"dweb:/ipfs/QmbuGjkSjngbTZMRPijL9p56fP9cK5jMnWsFmvYAQj3qAY\"]},\"project:/contracts/patterns/Upgradeable.sol\":{\"keccak256\":\"0x49d1a83abc7a9b39d224677dde65ead4b7f1104332a94c9e619854b2a6b3a89e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6a798a953af921a5b4e24e3f78bebae97819a85c90deb12ec505952faa42814\",\"dweb:/ipfs/QmVJhv4x3MXf4aDbMC5Q259K8kZNvxSXzmy8anoow7nS7k\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./WitOracleBasePushOnly.sol\";\r\nimport \"../WitnetUpgradableBase.sol\";\r\nimport \"../../data/WitOracleDataLib.sol\";\r\nimport \"../../interfaces/IWitOracleTrustableAdmin.sol\";\r\n\r\n/// @title Push-only WitOracle \"trustable\" base implementation.\r\n/// @author The Witnet Foundation\r\nabstract contract WitOracleBasePushOnlyTrustable\r\n    is \r\n        WitnetUpgradableBase,\r\n        WitOracleBasePushOnly,\r\n        IWitOracleTrustableAdmin\r\n{\r\n    using Witnet for Witnet.DataPushReport;\r\n\r\n    constructor(bytes32 _versionTag)\r\n        Ownable(msg.sender)\r\n        WitnetUpgradableBase(\r\n            true, \r\n            _versionTag,\r\n            \"io.witnet.proxiable.board\"\r\n        )\r\n    {}\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Upgradeable ------------------------------------------------------------------------------------------------\r\n\r\n    /// @notice Re-initialize contract's storage context upon a new upgrade from a proxy.\r\n    function __initializeUpgradableData(bytes memory _initData) virtual override internal {\r\n        WitOracleDataLib.setReporters(abi.decode(_initData, (address[])));\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- IWitOracle -------------------------------------------------------------------------------------------------\r\n\r\n    function parseDataReport(Witnet.DataPushReport calldata _report, bytes calldata _signature)\r\n        virtual override public view\r\n        returns (Witnet.DataResult memory _result)\r\n    {\r\n        (, _result) = WitOracleDataLib.parseDataReport(_report, _signature);\r\n    }\r\n\r\n    function pushDataReport(Witnet.DataPushReport calldata _report, bytes calldata _signature)\r\n        virtual override external\r\n        returns (Witnet.DataResult memory)\r\n    {\r\n        (address _evmSigner, Witnet.DataResult memory _result) = WitOracleDataLib.parseDataReport(_report, _signature);\r\n        emit WitOracleReport(\r\n            tx.origin, \r\n            msg.sender, \r\n            _evmSigner, \r\n            _report.witDrTxHash,\r\n            _report.queryRadHash,\r\n            _report.queryParams,\r\n            _report.resultTimestamp,\r\n            _report.resultCborBytes\r\n        );\r\n        return _result;\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- IWitOracleTrustableAdmin ----------------------------------------------------------------------------------------\r\n\r\n    /// Tells whether given address is included in the active reporters control list.\r\n    /// @param _queryResponseReporter The address to be checked.\r\n    function isReporter(address _queryResponseReporter) virtual override public view returns (bool) {\r\n        return WitOracleDataLib.isReporter(_queryResponseReporter);\r\n    }\r\n\r\n    /// Adds given addresses to the active reporters control list.\r\n    /// @dev Can only be called from the owner address.\r\n    /// @dev Emits the `ReportersSet` event. \r\n    /// @param _queryResponseReporters List of addresses to be added to the active reporters control list.\r\n    function setReporters(address[] calldata _queryResponseReporters)\r\n        virtual override public\r\n        onlyOwner\r\n    {\r\n        WitOracleDataLib.setReporters(_queryResponseReporters);\r\n    }\r\n\r\n    /// Removes given addresses from the active reporters control list.\r\n    /// @dev Can only be called from the owner address.\r\n    /// @dev Emits the `ReportersUnset` event. \r\n    /// @param _exReporters List of addresses to be added to the active reporters control list.\r\n    function unsetReporters(address[] calldata _exReporters)\r\n        virtual override public\r\n        onlyOwner\r\n    {\r\n        WitOracleDataLib.unsetReporters(_exReporters);\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- Internal functions -----------------------------------------------------------------------------------------\r\n\r\n    function _revertUnhandledExceptionReason() \r\n        virtual override internal pure returns (string memory)\r\n    {\r\n        return string(abi.encodePacked(\r\n            type(WitOracleDataLib).name,\r\n            \": unhandled assertion\"\r\n        ));\r\n    }\r\n\r\n    /// Returns storage pointer to contents of 'WitOracleDataLib.Storage' struct.\r\n    function __storage() virtual internal pure returns (WitOracleDataLib.Storage storage _ptr) {\r\n      return WitOracleDataLib.data();\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\core\\base\\WitOracleBasePushOnlyTrustable.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/base/WitOracleBasePushOnlyTrustable.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "Context": [
        523
      ],
      "ERC165": [
        616
      ],
      "IERC165": [
        628
      ],
      "IWitAppliance": [
        26514
      ],
      "IWitOracle": [
        26581
      ],
      "IWitOracleLegacy": [
        28786
      ],
      "IWitOracleQueriable": [
        26795
      ],
      "IWitOracleQueriableConsumer": [
        26815
      ],
      "IWitOracleQueriableEvents": [
        26892
      ],
      "IWitOracleQueriableExperimental": [
        26964
      ],
      "IWitOracleQueriableTrustableReporter": [
        27056
      ],
      "IWitOracleRadonRegistry": [
        27394
      ],
      "IWitOracleRadonRegistryEvents": [
        27414
      ],
      "IWitOracleRequest": [
        28922
      ],
      "IWitOracleRequestTemplate": [
        29115
      ],
      "IWitOracleTrustableAdmin": [
        27628
      ],
      "Initializable": [
        267
      ],
      "Ownable": [
        415
      ],
      "Ownable2Step": [
        45709
      ],
      "Proxiable": [
        45810
      ],
      "ReentrancyGuard": [
        592
      ],
      "Secp256k1": [
        32535
      ],
      "Upgradeable": [
        45930
      ],
      "WitOracleBasePushOnly": [
        9455
      ],
      "WitOracleBasePushOnlyTrustable": [
        9655
      ],
      "WitOracleDataLib": [
        20110
      ],
      "WitOraclePushOnly": [
        701
      ],
      "WitOracleRadonRegistry": [
        726
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ],
      "WitnetProxy": [
        8994
      ],
      "WitnetUpgradableBase": [
        9373
      ]
    },
    "id": 9656,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9457,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:28"
      },
      {
        "absolutePath": "project:/contracts/core/base/WitOracleBasePushOnly.sol",
        "file": "./WitOracleBasePushOnly.sol",
        "id": 9458,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9656,
        "sourceUnit": 9456,
        "src": "70:37:28",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/WitnetUpgradableBase.sol",
        "file": "../WitnetUpgradableBase.sol",
        "id": 9459,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9656,
        "sourceUnit": 9374,
        "src": "109:37:28",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitOracleDataLib.sol",
        "file": "../../data/WitOracleDataLib.sol",
        "id": 9460,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9656,
        "sourceUnit": 20111,
        "src": "148:41:28",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/IWitOracleTrustableAdmin.sol",
        "file": "../../interfaces/IWitOracleTrustableAdmin.sol",
        "id": 9461,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9656,
        "sourceUnit": 27629,
        "src": "191:55:28",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 9463,
              "name": "WitnetUpgradableBase",
              "nameLocations": [
                "417:20:28"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 9373,
              "src": "417:20:28"
            },
            "id": 9464,
            "nodeType": "InheritanceSpecifier",
            "src": "417:20:28"
          },
          {
            "baseName": {
              "id": 9465,
              "name": "WitOracleBasePushOnly",
              "nameLocations": [
                "448:21:28"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 9455,
              "src": "448:21:28"
            },
            "id": 9466,
            "nodeType": "InheritanceSpecifier",
            "src": "448:21:28"
          },
          {
            "baseName": {
              "id": 9467,
              "name": "IWitOracleTrustableAdmin",
              "nameLocations": [
                "480:24:28"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27628,
              "src": "480:24:28"
            },
            "id": 9468,
            "nodeType": "InheritanceSpecifier",
            "src": "480:24:28"
          }
        ],
        "canonicalName": "WitOracleBasePushOnlyTrustable",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 9462,
          "nodeType": "StructuredDocumentation",
          "src": "250:100:28",
          "text": "@title Push-only WitOracle \"trustable\" base implementation.\n @author The Witnet Foundation"
        },
        "fullyImplemented": false,
        "id": 9655,
        "linearizedBaseContracts": [
          9655,
          27628,
          9455,
          701,
          26581,
          26514,
          9373,
          592,
          45930,
          45810,
          267,
          45709,
          415,
          523
        ],
        "name": "WitOracleBasePushOnlyTrustable",
        "nameLocation": "368:30:28",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 9472,
            "libraryName": {
              "id": 9469,
              "name": "Witnet",
              "nameLocations": [
                "519:6:28"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "519:6:28"
            },
            "nodeType": "UsingForDirective",
            "src": "513:39:28",
            "typeName": {
              "id": 9471,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 9470,
                "name": "Witnet.DataPushReport",
                "nameLocations": [
                  "530:6:28",
                  "537:14:28"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37274,
                "src": "530:21:28"
              },
              "referencedDeclaration": 37274,
              "src": "530:21:28",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                "typeString": "struct Witnet.DataPushReport"
              }
            }
          },
          {
            "body": {
              "id": 9486,
              "nodeType": "Block",
              "src": "756:2:28",
              "statements": []
            },
            "id": 9487,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "expression": {
                      "id": 9477,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967281,
                      "src": "610:3:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 9478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "614:6:28",
                    "memberName": "sender",
                    "nodeType": "MemberAccess",
                    "src": "610:10:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 9479,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 9476,
                  "name": "Ownable",
                  "nameLocations": [
                    "602:7:28"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 415,
                  "src": "602:7:28"
                },
                "nodeType": "ModifierInvocation",
                "src": "602:19:28"
              },
              {
                "arguments": [
                  {
                    "hexValue": "74727565",
                    "id": 9481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "666:4:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  {
                    "id": 9482,
                    "name": "_versionTag",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9474,
                    "src": "686:11:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "hexValue": "696f2e7769746e65742e70726f786961626c652e626f617264",
                    "id": 9483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "712:27:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_9969c6aff411c5e5f0807500693e8f819ce88529615cfa6cab569b24788a1018",
                      "typeString": "literal_string \"io.witnet.proxiable.board\""
                    },
                    "value": "io.witnet.proxiable.board"
                  }
                ],
                "id": 9484,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 9480,
                  "name": "WitnetUpgradableBase",
                  "nameLocations": [
                    "631:20:28"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 9373,
                  "src": "631:20:28"
                },
                "nodeType": "ModifierInvocation",
                "src": "631:119:28"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9474,
                  "mutability": "mutable",
                  "name": "_versionTag",
                  "nameLocation": "580:11:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9487,
                  "src": "572:19:28",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9473,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "572:7:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "571:21:28"
            },
            "returnParameters": {
              "id": 9485,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "756:0:28"
            },
            "scope": 9655,
            "src": "560:198:28",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              45923
            ],
            "body": {
              "id": 9507,
              "nodeType": "Block",
              "src": "1189:84:28",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 9499,
                            "name": "_initData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9490,
                            "src": "1241:9:28",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "components": [
                              {
                                "baseExpression": {
                                  "id": 9501,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1253:7:28",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 9500,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1253:7:28",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 9502,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1253:9:28",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                                  "typeString": "type(address[] memory)"
                                }
                              }
                            ],
                            "id": 9503,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1252:11:28",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "type(address[] memory)"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_type$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "type(address[] memory)"
                            }
                          ],
                          "expression": {
                            "id": 9497,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "1230:3:28",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 9498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "1234:6:28",
                          "memberName": "decode",
                          "nodeType": "MemberAccess",
                          "src": "1230:10:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                            "typeString": "function () pure"
                          }
                        },
                        "id": 9504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1230:34:28",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      ],
                      "expression": {
                        "id": 9494,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "1200:16:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1217:12:28",
                      "memberName": "setReporters",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18611,
                      "src": "1200:29:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 9505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1200:65:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9506,
                  "nodeType": "ExpressionStatement",
                  "src": "1200:65:28"
                }
              ]
            },
            "documentation": {
              "id": 9488,
              "nodeType": "StructuredDocumentation",
              "src": "1012:85:28",
              "text": "@notice Re-initialize contract's storage context upon a new upgrade from a proxy."
            },
            "id": 9508,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__initializeUpgradableData",
            "nameLocation": "1112:26:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9492,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1171:8:28"
            },
            "parameters": {
              "id": 9491,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9490,
                  "mutability": "mutable",
                  "name": "_initData",
                  "nameLocation": "1152:9:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9508,
                  "src": "1139:22:28",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9489,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1139:5:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1138:24:28"
            },
            "returnParameters": {
              "id": 9493,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1189:0:28"
            },
            "scope": 9655,
            "src": "1103:170:28",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26561
            ],
            "body": {
              "id": 9529,
              "nodeType": "Block",
              "src": "1718:86:28",
              "statements": [
                {
                  "expression": {
                    "id": 9527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "components": [
                        null,
                        {
                          "id": 9520,
                          "name": "_result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9518,
                          "src": "1732:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        }
                      ],
                      "id": 9521,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1729:11:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "tuple(,struct Witnet.DataResult memory)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 9524,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9511,
                          "src": "1776:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        {
                          "id": 9525,
                          "name": "_signature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9513,
                          "src": "1785:10:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          },
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        ],
                        "expression": {
                          "id": 9522,
                          "name": "WitOracleDataLib",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20110,
                          "src": "1743:16:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                            "typeString": "type(library WitOracleDataLib)"
                          }
                        },
                        "id": 9523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1760:15:28",
                        "memberName": "parseDataReport",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18737,
                        "src": "1743:32:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_struct$_DataPushReport_$37274_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$_t_struct$_DataResult_$37293_memory_ptr_$",
                          "typeString": "function (struct Witnet.DataPushReport memory,bytes memory) view returns (address,struct Witnet.DataResult memory)"
                        }
                      },
                      "id": 9526,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1743:53:28",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_address_$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "tuple(address,struct Witnet.DataResult memory)"
                      }
                    },
                    "src": "1729:67:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9528,
                  "nodeType": "ExpressionStatement",
                  "src": "1729:67:28"
                }
              ]
            },
            "functionSelector": "b783922b",
            "id": 9530,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "parseDataReport",
            "nameLocation": "1540:15:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9515,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1640:8:28"
            },
            "parameters": {
              "id": 9514,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9511,
                  "mutability": "mutable",
                  "name": "_report",
                  "nameLocation": "1587:7:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9530,
                  "src": "1556:38:28",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 9510,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9509,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "1556:6:28",
                        "1563:14:28"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "1556:21:28"
                    },
                    "referencedDeclaration": 37274,
                    "src": "1556:21:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9513,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nameLocation": "1611:10:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9530,
                  "src": "1596:25:28",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9512,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1596:5:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1555:67:28"
            },
            "returnParameters": {
              "id": 9519,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9518,
                  "mutability": "mutable",
                  "name": "_result",
                  "nameLocation": "1704:7:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9530,
                  "src": "1679:32:28",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 9517,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9516,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "1679:6:28",
                        "1686:10:28"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "1679:17:28"
                    },
                    "referencedDeclaration": 37293,
                    "src": "1679:17:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1678:34:28"
            },
            "scope": 9655,
            "src": "1531:273:28",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26573
            ],
            "body": {
              "id": 9573,
              "nodeType": "Block",
              "src": "1987:452:28",
              "statements": [
                {
                  "assignments": [
                    9543,
                    9546
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9543,
                      "mutability": "mutable",
                      "name": "_evmSigner",
                      "nameLocation": "2007:10:28",
                      "nodeType": "VariableDeclaration",
                      "scope": 9573,
                      "src": "1999:18:28",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 9542,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1999:7:28",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 9546,
                      "mutability": "mutable",
                      "name": "_result",
                      "nameLocation": "2044:7:28",
                      "nodeType": "VariableDeclaration",
                      "scope": 9573,
                      "src": "2019:32:28",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                        "typeString": "struct Witnet.DataResult"
                      },
                      "typeName": {
                        "id": 9545,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 9544,
                          "name": "Witnet.DataResult",
                          "nameLocations": [
                            "2019:6:28",
                            "2026:10:28"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 37293,
                          "src": "2019:17:28"
                        },
                        "referencedDeclaration": 37293,
                        "src": "2019:17:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                          "typeString": "struct Witnet.DataResult"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 9552,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 9549,
                        "name": "_report",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9533,
                        "src": "2088:7:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        }
                      },
                      {
                        "id": 9550,
                        "name": "_signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9535,
                        "src": "2097:10:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "id": 9547,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "2055:16:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2072:15:28",
                      "memberName": "parseDataReport",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18737,
                      "src": "2055:32:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_DataPushReport_$37274_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "function (struct Witnet.DataPushReport memory,bytes memory) view returns (address,struct Witnet.DataResult memory)"
                      }
                    },
                    "id": 9551,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2055:53:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_struct$_DataResult_$37293_memory_ptr_$",
                      "typeString": "tuple(address,struct Witnet.DataResult memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1998:110:28"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 9554,
                          "name": "tx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967270,
                          "src": "2154:2:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_transaction",
                            "typeString": "tx"
                          }
                        },
                        "id": 9555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2157:6:28",
                        "memberName": "origin",
                        "nodeType": "MemberAccess",
                        "src": "2154:9:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 9556,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2179:3:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 9557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2183:6:28",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2179:10:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9558,
                        "name": "_evmSigner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9543,
                        "src": "2205:10:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 9559,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9533,
                          "src": "2231:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2239:11:28",
                        "memberName": "witDrTxHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37262,
                        "src": "2231:19:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                          "typeString": "Witnet.TransactionHash"
                        }
                      },
                      {
                        "expression": {
                          "id": 9561,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9533,
                          "src": "2265:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9562,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2273:12:28",
                        "memberName": "queryRadHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37265,
                        "src": "2265:20:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      },
                      {
                        "expression": {
                          "id": 9563,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9533,
                          "src": "2300:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9564,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2308:11:28",
                        "memberName": "queryParams",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37268,
                        "src": "2300:19:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                          "typeString": "struct Witnet.QuerySLA calldata"
                        }
                      },
                      {
                        "expression": {
                          "id": 9565,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9533,
                          "src": "2334:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9566,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2342:15:28",
                        "memberName": "resultTimestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37271,
                        "src": "2334:23:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      },
                      {
                        "expression": {
                          "id": 9567,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9533,
                          "src": "2372:7:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2380:15:28",
                        "memberName": "resultCborBytes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37273,
                        "src": "2372:23:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                          "typeString": "Witnet.TransactionHash"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        },
                        {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                          "typeString": "struct Witnet.QuerySLA calldata"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 9553,
                      "name": "WitOracleReport",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26543,
                      "src": "2124:15:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$_t_userDefinedValueType$_Timestamp_$37157_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,address,Witnet.TransactionHash,Witnet.RadonHash,struct Witnet.QuerySLA memory,Witnet.Timestamp,bytes memory)"
                      }
                    },
                    "id": 9569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2124:282:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9570,
                  "nodeType": "EmitStatement",
                  "src": "2119:287:28"
                },
                {
                  "expression": {
                    "id": 9571,
                    "name": "_result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9546,
                    "src": "2424:7:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "functionReturnParameters": 9541,
                  "id": 9572,
                  "nodeType": "Return",
                  "src": "2417:14:28"
                }
              ]
            },
            "functionSelector": "6d0d6a7e",
            "id": 9574,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pushDataReport",
            "nameLocation": "1821:14:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9537,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1920:8:28"
            },
            "parameters": {
              "id": 9536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9533,
                  "mutability": "mutable",
                  "name": "_report",
                  "nameLocation": "1867:7:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9574,
                  "src": "1836:38:28",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 9532,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9531,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "1836:6:28",
                        "1843:14:28"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "1836:21:28"
                    },
                    "referencedDeclaration": 37274,
                    "src": "1836:21:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9535,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nameLocation": "1891:10:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9574,
                  "src": "1876:25:28",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9534,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1876:5:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1835:67:28"
            },
            "returnParameters": {
              "id": 9541,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9540,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9574,
                  "src": "1956:24:28",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 9539,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9538,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "1956:6:28",
                        "1963:10:28"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "1956:17:28"
                    },
                    "referencedDeclaration": 37293,
                    "src": "1956:17:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1955:26:28"
            },
            "scope": 9655,
            "src": "1812:627:28",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27613
            ],
            "body": {
              "id": 9588,
              "nodeType": "Block",
              "src": "2947:77:28",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9585,
                        "name": "_queryResponseReporter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9577,
                        "src": "2993:22:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 9583,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "2965:16:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2982:10:28",
                      "memberName": "isReporter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18575,
                      "src": "2965:27:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                        "typeString": "function (address) view returns (bool)"
                      }
                    },
                    "id": 9586,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2965:51:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 9582,
                  "id": 9587,
                  "nodeType": "Return",
                  "src": "2958:58:28"
                }
              ]
            },
            "documentation": {
              "id": 9575,
              "nodeType": "StructuredDocumentation",
              "src": "2698:147:28",
              "text": "Tells whether given address is included in the active reporters control list.\n @param _queryResponseReporter The address to be checked."
            },
            "functionSelector": "044ad7be",
            "id": 9589,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isReporter",
            "nameLocation": "2860:10:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9579,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2911:8:28"
            },
            "parameters": {
              "id": 9578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9577,
                  "mutability": "mutable",
                  "name": "_queryResponseReporter",
                  "nameLocation": "2879:22:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9589,
                  "src": "2871:30:28",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2871:7:28",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2870:32:28"
            },
            "returnParameters": {
              "id": 9582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9581,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9589,
                  "src": "2941:4:28",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 9580,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2941:4:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2940:6:28"
            },
            "scope": 9655,
            "src": "2851:173:28",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27620
            ],
            "body": {
              "id": 9605,
              "nodeType": "Block",
              "src": "3435:73:28",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9602,
                        "name": "_queryResponseReporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9593,
                        "src": "3476:23:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 9599,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "3446:16:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3463:12:28",
                      "memberName": "setReporters",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18611,
                      "src": "3446:29:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 9603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3446:54:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9604,
                  "nodeType": "ExpressionStatement",
                  "src": "3446:54:28"
                }
              ]
            },
            "documentation": {
              "id": 9590,
              "nodeType": "StructuredDocumentation",
              "src": "3032:274:28",
              "text": "Adds given addresses to the active reporters control list.\n @dev Can only be called from the owner address.\n @dev Emits the `ReportersSet` event. \n @param _queryResponseReporters List of addresses to be added to the active reporters control list."
            },
            "functionSelector": "4c9f72e3",
            "id": 9606,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9597,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9596,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "3420:9:28"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "3420:9:28"
                },
                "nodeType": "ModifierInvocation",
                "src": "3420:9:28"
              }
            ],
            "name": "setReporters",
            "nameLocation": "3321:12:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9595,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3395:8:28"
            },
            "parameters": {
              "id": 9594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9593,
                  "mutability": "mutable",
                  "name": "_queryResponseReporters",
                  "nameLocation": "3353:23:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9606,
                  "src": "3334:42:28",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9591,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3334:7:28",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 9592,
                    "nodeType": "ArrayTypeName",
                    "src": "3334:9:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3333:44:28"
            },
            "returnParameters": {
              "id": 9598,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3435:0:28"
            },
            "scope": 9655,
            "src": "3312:196:28",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27627
            ],
            "body": {
              "id": 9622,
              "nodeType": "Block",
              "src": "3906:64:28",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9619,
                        "name": "_exReporters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9610,
                        "src": "3949:12:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 9616,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "3917:16:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9618,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3934:14:28",
                      "memberName": "unsetReporters",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18647,
                      "src": "3917:31:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address[] memory)"
                      }
                    },
                    "id": 9620,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3917:45:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9621,
                  "nodeType": "ExpressionStatement",
                  "src": "3917:45:28"
                }
              ]
            },
            "documentation": {
              "id": 9607,
              "nodeType": "StructuredDocumentation",
              "src": "3516:270:28",
              "text": "Removes given addresses from the active reporters control list.\n @dev Can only be called from the owner address.\n @dev Emits the `ReportersUnset` event. \n @param _exReporters List of addresses to be added to the active reporters control list."
            },
            "functionSelector": "28a78d9b",
            "id": 9623,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 9614,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 9613,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "3891:9:28"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "3891:9:28"
                },
                "nodeType": "ModifierInvocation",
                "src": "3891:9:28"
              }
            ],
            "name": "unsetReporters",
            "nameLocation": "3801:14:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9612,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3866:8:28"
            },
            "parameters": {
              "id": 9611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9610,
                  "mutability": "mutable",
                  "name": "_exReporters",
                  "nameLocation": "3835:12:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9623,
                  "src": "3816:31:28",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9608,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3816:7:28",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 9609,
                    "nodeType": "ArrayTypeName",
                    "src": "3816:9:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3815:33:28"
            },
            "returnParameters": {
              "id": 9615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3906:0:28"
            },
            "scope": 9655,
            "src": "3792:178:28",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              9454
            ],
            "body": {
              "id": 9641,
              "nodeType": "Block",
              "src": "4337:141:28",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 9634,
                                  "name": "WitOracleDataLib",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20110,
                                  "src": "4398:16:28",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                    "typeString": "type(library WitOracleDataLib)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                                    "typeString": "type(library WitOracleDataLib)"
                                  }
                                ],
                                "id": 9633,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "4393:4:28",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 9635,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4393:22:28",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_WitOracleDataLib_$20110",
                                "typeString": "type(library WitOracleDataLib)"
                              }
                            },
                            "id": 9636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "4416:4:28",
                            "memberName": "name",
                            "nodeType": "MemberAccess",
                            "src": "4393:27:28",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "hexValue": "3a20756e68616e646c656420617373657274696f6e",
                            "id": 9637,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4435:23:28",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f8fa18d02d3b000652ed8c67af593a68d22044c405602d1b221b59198f24cc7f",
                              "typeString": "literal_string \": unhandled assertion\""
                            },
                            "value": ": unhandled assertion"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_f8fa18d02d3b000652ed8c67af593a68d22044c405602d1b221b59198f24cc7f",
                              "typeString": "literal_string \": unhandled assertion\""
                            }
                          ],
                          "expression": {
                            "id": 9631,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "4362:3:28",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 9632,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "4366:12:28",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "4362:16:28",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 9638,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4362:107:28",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9630,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "4355:6:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 9629,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4355:6:28",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 9639,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4355:115:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 9628,
                  "id": 9640,
                  "nodeType": "Return",
                  "src": "4348:122:28"
                }
              ]
            },
            "id": 9642,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_revertUnhandledExceptionReason",
            "nameLocation": "4233:31:28",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9625,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4285:8:28"
            },
            "parameters": {
              "id": 9624,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4264:2:28"
            },
            "returnParameters": {
              "id": 9628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9627,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9642,
                  "src": "4317:13:28",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9626,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4317:6:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4316:15:28"
            },
            "scope": 9655,
            "src": "4224:254:28",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 9653,
              "nodeType": "Block",
              "src": "4660:47:28",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 9649,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "4676:16:28",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9650,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4693:4:28",
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18116,
                      "src": "4676:21:28",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$18055_storage_ptr_$",
                        "typeString": "function () pure returns (struct WitOracleDataLib.Storage storage pointer)"
                      }
                    },
                    "id": 9651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4676:23:28",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Storage storage pointer"
                    }
                  },
                  "functionReturnParameters": 9648,
                  "id": 9652,
                  "nodeType": "Return",
                  "src": "4669:30:28"
                }
              ]
            },
            "documentation": {
              "id": 9643,
              "nodeType": "StructuredDocumentation",
              "src": "4486:77:28",
              "text": "Returns storage pointer to contents of 'WitOracleDataLib.Storage' struct."
            },
            "id": 9654,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__storage",
            "nameLocation": "4578:9:28",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9644,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4587:2:28"
            },
            "returnParameters": {
              "id": 9648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9647,
                  "mutability": "mutable",
                  "name": "_ptr",
                  "nameLocation": "4654:4:28",
                  "nodeType": "VariableDeclaration",
                  "scope": 9654,
                  "src": "4621:37:28",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                    "typeString": "struct WitOracleDataLib.Storage"
                  },
                  "typeName": {
                    "id": 9646,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9645,
                      "name": "WitOracleDataLib.Storage",
                      "nameLocations": [
                        "4621:16:28",
                        "4638:7:28"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 18055,
                      "src": "4621:24:28"
                    },
                    "referencedDeclaration": 18055,
                    "src": "4621:24:28",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$18055_storage_ptr",
                      "typeString": "struct WitOracleDataLib.Storage"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4620:39:28"
            },
            "scope": 9655,
            "src": "4569:138:28",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 9656,
        "src": "350:4360:28",
        "usedErrors": [
          16,
          19,
          281,
          286,
          537,
          26521
        ],
        "usedEvents": [
          24,
          292,
          26543,
          27600,
          27605,
          45638,
          45853
        ]
      }
    ],
    "src": "35:4677:28"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.474Z",
  "devdoc": {
    "author": "The Witnet Foundation",
    "errors": {
      "InvalidInitialization()": [
        {
          "details": "The contract is already initialized."
        }
      ],
      "NotInitializing()": [
        {
          "details": "The contract is not initializing."
        }
      ],
      "OwnableInvalidOwner(address)": [
        {
          "details": "The owner is not a valid owner account. (eg. `address(0)`)"
        }
      ],
      "OwnableUnauthorizedAccount(address)": [
        {
          "details": "The caller account is not authorized to perform an operation."
        }
      ],
      "ReentrancyGuardReentrantCall()": [
        {
          "details": "Unauthorized reentrant call."
        }
      ]
    },
    "events": {
      "Initialized(uint64)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "Upgraded(address,address,bytes32,string)": {
        "params": {
          "baseAddr": "The address of the new implementation contract.",
          "baseCodehash": "The EVM-codehash of the new implementation contract.",
          "from": "The address who ordered the upgrading. Namely, the WRB operator in \"trustable\" implementations.",
          "versionTag": "Ascii-encoded version literal with which the implementation deployer decided to tag it."
        }
      }
    },
    "kind": "dev",
    "methods": {
      "acceptOwnership()": {
        "details": "The new owner accepts the ownership transfer."
      },
      "base()": {
        "details": "Retrieves base contract. Differs from address(this) when called via delegate-proxy pattern."
      },
      "codehash()": {
        "details": "Retrieves the immutable codehash of this contract, even if invoked as delegatecall."
      },
      "initialize(bytes)": {
        "details": "Must fail when trying to upgrade to same logic contract more than once."
      },
      "isReporter(address)": {
        "params": {
          "_queryResponseReporter": "The address to be checked."
        }
      },
      "isUpgradable()": {
        "details": "Determines whether the logic of this contract is potentially upgradable."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "pendingOwner()": {
        "details": "Returns the address of the pending owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
      },
      "setReporters(address[])": {
        "details": "Can only be called from the owner address.Emits the `ReportersSet` event. ",
        "params": {
          "_queryResponseReporters": "List of addresses to be added to the active reporters control list."
        }
      },
      "transferOwnership(address)": {
        "details": "Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."
      },
      "unsetReporters(address[])": {
        "details": "Can only be called from the owner address.Emits the `ReportersUnset` event. ",
        "params": {
          "_exReporters": "List of addresses to be added to the active reporters control list."
        }
      }
    },
    "title": "Push-only WitOracle \"trustable\" base implementation.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "Upgraded(address,address,bytes32,string)": {
        "notice": "Emitted every time the contract gets upgraded."
      }
    },
    "kind": "user",
    "methods": {
      "channel()": {
        "notice": "Uniquely identifies the WitOracle instance and the chain on which it's deployed."
      },
      "class()": {
        "notice": "Returns the name of the actual contract implementing the logic of this Witnet appliance."
      },
      "initialize(bytes)": {
        "notice": "Re-initialize contract's storage context upon a new upgrade from a proxy."
      },
      "isReporter(address)": {
        "notice": "Tells whether given address is included in the active reporters control list."
      },
      "isUpgradableFrom(address)": {
        "notice": "Tells whether provided address could eventually upgrade the contract."
      },
      "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. "
      },
      "setReporters(address[])": {
        "notice": "Adds given addresses to the active reporters control list."
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      },
      "unsetReporters(address[])": {
        "notice": "Removes given addresses from the active reporters control list."
      },
      "version()": {
        "notice": "Retrieves human-readable version tag of current implementation."
      }
    },
    "version": 1
  }
}