{
  "contractName": "WitOracleBasePushOnlyTrustless",
  "abi": [
    {
      "inputs": [],
      "name": "InvalidDataReport",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.Beacon",
          "name": "head",
          "type": "tuple"
        }
      ],
      "name": "Rollup",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "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"
    },
    {
      "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": "registry",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "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": "Witnet.Timestamp",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "determineBeaconIndexFromTimestamp",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.Timestamp",
          "name": "timestamp",
          "type": "uint64"
        }
      ],
      "name": "determineEpochFromTimestamp",
      "outputs": [
        {
          "internalType": "Witnet.BlockNumber",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "index",
          "type": "uint32"
        }
      ],
      "name": "getBeaconByIndex",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getGenesisBeacon",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastKnownBeacon",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastKnownBeaconIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "index",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "prevIndex",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes24",
                  "name": "prevRoot",
                  "type": "bytes24"
                },
                {
                  "internalType": "bytes16",
                  "name": "ddrTalliesMerkleRoot",
                  "type": "bytes16"
                },
                {
                  "internalType": "bytes16",
                  "name": "droTalliesMerkleRoot",
                  "type": "bytes16"
                },
                {
                  "internalType": "uint256[4]",
                  "name": "nextCommitteeAggPubkey",
                  "type": "uint256[4]"
                }
              ],
              "internalType": "struct Witnet.Beacon",
              "name": "beacon",
              "type": "tuple"
            },
            {
              "internalType": "uint256[2]",
              "name": "committeeAggSignature",
              "type": "uint256[2]"
            },
            {
              "internalType": "uint256[4][]",
              "name": "committeeMissingPubkeys",
              "type": "uint256[4][]"
            }
          ],
          "internalType": "struct Witnet.FastForward[]",
          "name": "_witOracleRollup",
          "type": "tuple[]"
        }
      ],
      "name": "rollupBeacons",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "index",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "prevIndex",
              "type": "uint32"
            },
            {
              "internalType": "bytes24",
              "name": "prevRoot",
              "type": "bytes24"
            },
            {
              "internalType": "bytes16",
              "name": "ddrTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "bytes16",
              "name": "droTalliesMerkleRoot",
              "type": "bytes16"
            },
            {
              "internalType": "uint256[4]",
              "name": "nextCommitteeAggPubkey",
              "type": "uint256[4]"
            }
          ],
          "internalType": "struct Witnet.Beacon",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDataReport\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"indexed\":false,\"internalType\":\"struct Witnet.Beacon\",\"name\":\"head\",\"type\":\"tuple\"}],\"name\":\"Rollup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"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\"},{\"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\":[{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"determineBeaconIndexFromTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"determineEpochFromTimestamp\",\"outputs\":[{\"internalType\":\"Witnet.BlockNumber\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getBeaconByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisBeacon\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastKnownBeacon\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastKnownBeaconIndex\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IWitOracleRadonRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"beacon\",\"type\":\"tuple\"},{\"internalType\":\"uint256[2]\",\"name\":\"committeeAggSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4][]\",\"name\":\"committeeMissingPubkeys\",\"type\":\"uint256[4][]\"}],\"internalType\":\"struct Witnet.FastForward[]\",\"name\":\"_witOracleRollup\",\"type\":\"tuple[]\"}],\"name\":\"rollupBeacons\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Push-only WitOracle \\\"trustless\\\" base implementation.\",\"version\":1},\"userdoc\":{\"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.\"},\"registry()\":{\"notice\":\"Returns the WitOracleRadonRegistry in which Witnet-compliant Radon requestscan be formally verified and forever registered as a away to let smart contracts and users to track actual data sources and offchain computations applied on data updates safely reported from the Wit/Oracle blockchain. \"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/base/WitOracleBasePushOnlyTrustless.sol\":\"WitOracleBasePushOnlyTrustless\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"project:/contracts/WitOraclePushOnly.sol\":{\"keccak256\":\"0x659b4746c5a773b554b7a94bea3f55a995a8f850d750108302a8face9d1c833c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://291c6b4cd5c0f223ee63cc8cee2e228f47e1344a935eb89b6ef8f993eb5ce18e\",\"dweb:/ipfs/QmeKNLaVURv4N5jz5z67WQ4wyUUucqMaYLZQ2NnuuNyyPS\"]},\"project:/contracts/WitOracleRadonRegistry.sol\":{\"keccak256\":\"0xc9bd0ab02e13b36fe4072868ae978a230c5132a702d6594f11270ec5e7926e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8321305b131abec96c492302163d95f8777106f74a0d42f5f50fdf60d2b3a381\",\"dweb:/ipfs/QmRx7FGWPkC41afPuJpBTDQ85wjH95Dbi3qAxVNfNZUsWe\"]},\"project:/contracts/core/base/WitOracleBasePushOnly.sol\":{\"keccak256\":\"0xdf4be00f732674d6a1a83fbb5801571690623a17b7388613af3a3debadf9ce2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b4b8a611ed9186249e30fcaeecc1d7bbda50338e794d5b65865f885f20ec6e\",\"dweb:/ipfs/Qme8xqsdQqdyDuy1DYijquG6LGJHqRzyruZ1MR6hPJCxmY\"]},\"project:/contracts/core/base/WitOracleBasePushOnlyTrustless.sol\":{\"keccak256\":\"0x2429d61b79afa8ada733a6d6508fee4aff3b82dab8dd0ca8c41c513d2dbe8507\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://036ca07ef8a02a13ce8945293530b327472fc1255e767ec38ec983a785e57ba4\",\"dweb:/ipfs/QmUE4ZssSpeQzCA3d4aN7n2hcdzpaEu8DEBToyVKjQuokN\"]},\"project:/contracts/data/WitOracleDataLib.sol\":{\"keccak256\":\"0x879c513c3cac839300e954d5ffe61c14eaec3052b39898ec2402068169fddd55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f58f4aa26e2a174fb5cee2fd9c06a10c337e6766b804e38bb4bbb3c3d4682d\",\"dweb:/ipfs/QmTjS8hws4VAd3S8dpNmX3zyV7oCF7xJ7AZTRJwrmbhSmi\"]},\"project:/contracts/data/WitOracleTrustlessDataLib.sol\":{\"keccak256\":\"0xe8a7bc0ec65380336ceb381c56afa6a3aff93bca34b4380a6c6d6faaeab16ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0a4f80c9cae5ba779b8baa9a85feb2a948dd6d945002859405fd1fada34f809\",\"dweb:/ipfs/QmWGYMduHTbuvNE4p7JuVEBQXPzi8fHs1x7Gvqse2Upssa\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/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/IWitOracleTrustless.sol\":{\"keccak256\":\"0x9220a2dd4736b37d909af59603b3d125758deb5d1845650aaa7c92cabd75f75b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d224d9c72e077605427b87c1fa1b47de53b1835dd148a27c13e9eb5a620e6d\",\"dweb:/ipfs/Qmaz8y5E4c73Zw4y4Siy2J3oNuhw9M7v2s7uC9XLi6dZaw\"]},\"project:/contracts/interfaces/legacy/IWitOracleLegacy.sol\":{\"keccak256\":\"0xd2929c9aa5a02d261d6d1a068a6b7231ae58d8f81f081ba89f2d3267a31fbbb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://956b26323a02cf400c32012586954fc5dbc98b4d5b7a8b0533401cbda8619059\",\"dweb:/ipfs/QmSWdCRwL5t3atFM8osdaohLTqEEmY1FbnR6xrRCmw1GDM\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequest.sol\":{\"keccak256\":\"0x0fb3f0ba03f4f7a0214ecb36df26525564cf51a8a2176cba92c185af8a1d419e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://340b7bdb92c3259519fe120eb3061b393e7a5e9c1b576a2fe4eab020af466b64\",\"dweb:/ipfs/QmRt4wMX9WdxFwfdFMUZ3zKMAW1grS7qLk1x1PDMJdEAVU\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequestTemplate.sol\":{\"keccak256\":\"0x9e065ef5880c64eefff5fcfb1347fde6684e0e311f8c2350a6aefdbd1f8b0f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://817de760c7cce9d00dcd4312aea6434d88abddf1c0e68ea7e8fb1e6c5165a445\",\"dweb:/ipfs/QmUNmtn85nFXbje2nRJQY2h65KJCVinDMMU6P2jQmo1Nij\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Escrowable.sol\":{\"keccak256\":\"0xf0fdb82142f66323a1d419839ddcf67b51ac2faa418a2b364e0b2e4b5fdfbc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5123dc63b3d2f501eec6b9616db46833c155c1dca416bb58dbeb924558f8020\",\"dweb:/ipfs/QmakA3u4rqWpzeiKkUZxhnQotReaybCCDMkkJZFHyZVb1U\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x29ce79b9329cc854ddb0ee546e5a17f3cedafa91c7d614f43e8d6537680b1734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00d5ce85f66c3c32b8b69bfed2f07f40d14ac72c2f67d2de6601de0be16b5af1\",\"dweb:/ipfs/QmZogwLRBjFUJVSzR8YuMfo3mKg8WvYVbn2QvWXsCVP92V\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./WitOracleBasePushOnly.sol\";\r\n\r\nimport \"../../data/WitOracleTrustlessDataLib.sol\";\r\nimport \"../../data/WitOracleDataLib.sol\";\r\n\r\n/// @title Push-only WitOracle \"trustless\" base implementation.\r\n/// @author The Witnet Foundation\r\nabstract contract WitOracleBasePushOnlyTrustless\r\n    is \r\n        WitOracleBasePushOnly,\r\n        IWitOracleTrustless\r\n{\r\n    using Witnet for Witnet.DataPushReport;\r\n\r\n    constructor() {\r\n        // store genesis beacon:\r\n        WitOracleTrustlessDataLib.data().beacons[\r\n            Witnet.WIT_2_GENESIS_BEACON_INDEX\r\n        ] = Witnet.Beacon({\r\n            index: Witnet.WIT_2_GENESIS_BEACON_INDEX,\r\n            prevIndex: Witnet.WIT_2_GENESIS_BEACON_PREV_INDEX,\r\n            prevRoot: Witnet.WIT_2_GENESIS_BEACON_PREV_ROOT,\r\n            ddrTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT,\r\n            droTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT,\r\n            nextCommitteeAggPubkey: [\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3\r\n            ]\r\n        });\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\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    // --- IWitOracleTrustless -------------------------------------------------------------------------------------------\r\n\r\n    function determineBeaconIndexFromTimestamp(Witnet.Timestamp timestamp)\r\n        virtual override\r\n        external pure\r\n        returns (uint64)\r\n    {\r\n        return Witnet.determineBeaconIndexFromTimestamp(timestamp);\r\n    }\r\n    \r\n    function determineEpochFromTimestamp(Witnet.Timestamp timestamp)\r\n        virtual override\r\n        external pure\r\n        returns (Witnet.BlockNumber)\r\n    {\r\n        return Witnet.determineEpochFromTimestamp(timestamp);\r\n    }\r\n\r\n    function getBeaconByIndex(uint32 index)\r\n        virtual override\r\n        public view\r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        return WitOracleTrustlessDataLib.seekBeacon(index);\r\n    }\r\n\r\n    function getGenesisBeacon() \r\n        virtual override \r\n        external pure\r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        return Witnet.Beacon({\r\n            index: Witnet.WIT_2_GENESIS_BEACON_INDEX,\r\n            prevIndex: Witnet.WIT_2_GENESIS_BEACON_PREV_INDEX,\r\n            prevRoot: Witnet.WIT_2_GENESIS_BEACON_PREV_ROOT,\r\n            ddrTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT,\r\n            droTalliesMerkleRoot: Witnet.WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT,\r\n            nextCommitteeAggPubkey: [\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2,\r\n                Witnet.WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3\r\n            ]\r\n        });\r\n    }\r\n\r\n    function getLastKnownBeacon() \r\n        virtual override\r\n        public view\r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        return WitOracleTrustlessDataLib.getLastKnownBeacon();\r\n    }\r\n\r\n    function getLastKnownBeaconIndex()\r\n        virtual override\r\n        public view\r\n        returns (uint32)\r\n    {\r\n        return uint32(WitOracleTrustlessDataLib.getLastKnownBeaconIndex());\r\n    }\r\n\r\n    function rollupBeacons(Witnet.FastForward[] calldata _witOracleRollup)\r\n        virtual override public \r\n        returns (Witnet.Beacon memory)\r\n    {\r\n        try WitOracleTrustlessDataLib.rollupBeacons(\r\n            _witOracleRollup\r\n        ) returns (\r\n            Witnet.Beacon memory _witOracleHead\r\n        ) {\r\n            return _witOracleHead;\r\n        \r\n        } catch Error(string memory _reason) {\r\n            _revert(_reason);\r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandledException();\r\n        }\r\n    }\r\n    \r\n\r\n\r\n    // ================================================================================================================\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(WitOracleTrustlessDataLib).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\\WitOracleBasePushOnlyTrustless.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/base/WitOracleBasePushOnlyTrustless.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "Escrowable": [
        45618
      ],
      "IERC20": [
        493
      ],
      "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
      ],
      "IWitOracleTrustless": [
        27689
      ],
      "Payable": [
        45766
      ],
      "Secp256k1": [
        32535
      ],
      "WitOracleBasePushOnly": [
        9455
      ],
      "WitOracleBasePushOnlyTrustless": [
        9936
      ],
      "WitOracleDataLib": [
        20110
      ],
      "WitOraclePushOnly": [
        701
      ],
      "WitOracleRadonRegistry": [
        726
      ],
      "WitOracleTrustlessDataLib": [
        22249
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 9937,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9657,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:29"
      },
      {
        "absolutePath": "project:/contracts/core/base/WitOracleBasePushOnly.sol",
        "file": "./WitOracleBasePushOnly.sol",
        "id": 9658,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9937,
        "sourceUnit": 9456,
        "src": "70:37:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitOracleTrustlessDataLib.sol",
        "file": "../../data/WitOracleTrustlessDataLib.sol",
        "id": 9659,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9937,
        "sourceUnit": 22250,
        "src": "111:50:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitOracleDataLib.sol",
        "file": "../../data/WitOracleDataLib.sol",
        "id": 9660,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 9937,
        "sourceUnit": 20111,
        "src": "163:41:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 9662,
              "name": "WitOracleBasePushOnly",
              "nameLocations": [
                "375:21:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 9455,
              "src": "375:21:29"
            },
            "id": 9663,
            "nodeType": "InheritanceSpecifier",
            "src": "375:21:29"
          },
          {
            "baseName": {
              "id": 9664,
              "name": "IWitOracleTrustless",
              "nameLocations": [
                "407:19:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27689,
              "src": "407:19:29"
            },
            "id": 9665,
            "nodeType": "InheritanceSpecifier",
            "src": "407:19:29"
          }
        ],
        "canonicalName": "WitOracleBasePushOnlyTrustless",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 9661,
          "nodeType": "StructuredDocumentation",
          "src": "208:100:29",
          "text": "@title Push-only WitOracle \"trustless\" base implementation.\n @author The Witnet Foundation"
        },
        "fullyImplemented": false,
        "id": 9936,
        "linearizedBaseContracts": [
          9936,
          27689,
          9455,
          701,
          26581,
          26514
        ],
        "name": "WitOracleBasePushOnlyTrustless",
        "nameLocation": "326:30:29",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 9669,
            "libraryName": {
              "id": 9666,
              "name": "Witnet",
              "nameLocations": [
                "441:6:29"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "441:6:29"
            },
            "nodeType": "UsingForDirective",
            "src": "435:39:29",
            "typeName": {
              "id": 9668,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 9667,
                "name": "Witnet.DataPushReport",
                "nameLocations": [
                  "452:6:29",
                  "459:14:29"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37274,
                "src": "452:21:29"
              },
              "referencedDeclaration": 37274,
              "src": "452:21:29",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                "typeString": "struct Witnet.DataPushReport"
              }
            }
          },
          {
            "body": {
              "id": 9704,
              "nodeType": "Block",
              "src": "496:888:29",
              "statements": [
                {
                  "expression": {
                    "id": 9702,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 9672,
                              "name": "WitOracleTrustlessDataLib",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22249,
                              "src": "541:25:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 9674,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "567:4:29",
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 20309,
                            "src": "541:30:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$20300_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitOracleTrustlessDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 9675,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "541:32:29",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$20300_storage_ptr",
                            "typeString": "struct WitOracleTrustlessDataLib.Storage storage pointer"
                          }
                        },
                        "id": 9676,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "574:7:29",
                        "memberName": "beacons",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 20294,
                        "src": "541:40:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Beacon_$37242_storage_$",
                          "typeString": "mapping(uint256 => struct Witnet.Beacon storage ref)"
                        }
                      },
                      "id": 9679,
                      "indexExpression": {
                        "expression": {
                          "id": 9677,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "596:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9678,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "603:26:29",
                        "memberName": "WIT_2_GENESIS_BEACON_INDEX",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37168,
                        "src": "596:33:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "541:99:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Beacon_$37242_storage",
                        "typeString": "struct Witnet.Beacon storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 9682,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "679:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 9683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "686:26:29",
                          "memberName": "WIT_2_GENESIS_BEACON_INDEX",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37168,
                          "src": "679:33:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "expression": {
                            "id": 9684,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "738:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 9685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "745:31:29",
                          "memberName": "WIT_2_GENESIS_BEACON_PREV_INDEX",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37171,
                          "src": "738:38:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "expression": {
                            "id": 9686,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "801:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 9687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "808:30:29",
                          "memberName": "WIT_2_GENESIS_BEACON_PREV_ROOT",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37174,
                          "src": "801:37:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes24",
                            "typeString": "bytes24"
                          }
                        },
                        {
                          "expression": {
                            "id": 9688,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "875:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 9689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "882:44:29",
                          "memberName": "WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37177,
                          "src": "875:51:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          }
                        },
                        {
                          "expression": {
                            "id": 9690,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "963:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 9691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "970:44:29",
                          "memberName": "WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37180,
                          "src": "963:51:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          }
                        },
                        {
                          "components": [
                            {
                              "expression": {
                                "id": 9692,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "1072:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 9693,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1079:48:29",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37183,
                              "src": "1072:55:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 9694,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "1146:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 9695,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1153:48:29",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37186,
                              "src": "1146:55:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 9696,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "1220:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 9697,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1227:48:29",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37189,
                              "src": "1220:55:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 9698,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "1294:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 9699,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1301:48:29",
                              "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37192,
                              "src": "1294:55:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 9700,
                          "isConstant": false,
                          "isInlineArray": true,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1053:311:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                            "typeString": "uint256[4] memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_bytes24",
                            "typeString": "bytes24"
                          },
                          {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          },
                          {
                            "typeIdentifier": "t_bytes16",
                            "typeString": "bytes16"
                          },
                          {
                            "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                            "typeString": "uint256[4] memory"
                          }
                        ],
                        "expression": {
                          "id": 9680,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "643:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9681,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "650:6:29",
                        "memberName": "Beacon",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37242,
                        "src": "643:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Beacon_$37242_storage_ptr_$",
                          "typeString": "type(struct Witnet.Beacon storage pointer)"
                        }
                      },
                      "id": 9701,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "672:5:29",
                        "727:9:29",
                        "791:8:29",
                        "853:20:29",
                        "941:20:29",
                        "1029:22:29"
                      ],
                      "names": [
                        "index",
                        "prevIndex",
                        "prevRoot",
                        "ddrTalliesMerkleRoot",
                        "droTalliesMerkleRoot",
                        "nextCommitteeAggPubkey"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "643:733:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                        "typeString": "struct Witnet.Beacon memory"
                      }
                    },
                    "src": "541:835:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage",
                      "typeString": "struct Witnet.Beacon storage ref"
                    }
                  },
                  "id": 9703,
                  "nodeType": "ExpressionStatement",
                  "src": "541:835:29"
                }
              ]
            },
            "id": 9705,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9670,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "493:2:29"
            },
            "returnParameters": {
              "id": 9671,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "496:0:29"
            },
            "scope": 9936,
            "src": "482:902:29",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26561
            ],
            "body": {
              "id": 9726,
              "nodeType": "Block",
              "src": "1829:86:29",
              "statements": [
                {
                  "expression": {
                    "id": 9724,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "components": [
                        null,
                        {
                          "id": 9717,
                          "name": "_result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9715,
                          "src": "1843:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                            "typeString": "struct Witnet.DataResult memory"
                          }
                        }
                      ],
                      "id": 9718,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1840:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "tuple(,struct Witnet.DataResult memory)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 9721,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9708,
                          "src": "1887:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        {
                          "id": 9722,
                          "name": "_signature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9710,
                          "src": "1896:10:29",
                          "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": 9719,
                          "name": "WitOracleDataLib",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20110,
                          "src": "1854:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                            "typeString": "type(library WitOracleDataLib)"
                          }
                        },
                        "id": 9720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1871:15:29",
                        "memberName": "parseDataReport",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 18737,
                        "src": "1854:32:29",
                        "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": 9723,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1854:53:29",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_address_$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "tuple(address,struct Witnet.DataResult memory)"
                      }
                    },
                    "src": "1840:67:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9725,
                  "nodeType": "ExpressionStatement",
                  "src": "1840:67:29"
                }
              ]
            },
            "functionSelector": "b783922b",
            "id": 9727,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "parseDataReport",
            "nameLocation": "1651:15:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9712,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1751:8:29"
            },
            "parameters": {
              "id": 9711,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9708,
                  "mutability": "mutable",
                  "name": "_report",
                  "nameLocation": "1698:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9727,
                  "src": "1667:38:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 9707,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9706,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "1667:6:29",
                        "1674:14:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "1667:21:29"
                    },
                    "referencedDeclaration": 37274,
                    "src": "1667:21:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9710,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nameLocation": "1722:10:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9727,
                  "src": "1707:25:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9709,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1707:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1666:67:29"
            },
            "returnParameters": {
              "id": 9716,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9715,
                  "mutability": "mutable",
                  "name": "_result",
                  "nameLocation": "1815:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9727,
                  "src": "1790:32:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 9714,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9713,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "1790:6:29",
                        "1797:10:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "1790:17:29"
                    },
                    "referencedDeclaration": 37293,
                    "src": "1790:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1789:34:29"
            },
            "scope": 9936,
            "src": "1642:273:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26573
            ],
            "body": {
              "id": 9770,
              "nodeType": "Block",
              "src": "2098:452:29",
              "statements": [
                {
                  "assignments": [
                    9740,
                    9743
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9740,
                      "mutability": "mutable",
                      "name": "_evmSigner",
                      "nameLocation": "2118:10:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 9770,
                      "src": "2110:18:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 9739,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2110:7:29",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 9743,
                      "mutability": "mutable",
                      "name": "_result",
                      "nameLocation": "2155:7:29",
                      "nodeType": "VariableDeclaration",
                      "scope": 9770,
                      "src": "2130:32:29",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                        "typeString": "struct Witnet.DataResult"
                      },
                      "typeName": {
                        "id": 9742,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 9741,
                          "name": "Witnet.DataResult",
                          "nameLocations": [
                            "2130:6:29",
                            "2137:10:29"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 37293,
                          "src": "2130:17:29"
                        },
                        "referencedDeclaration": 37293,
                        "src": "2130:17:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                          "typeString": "struct Witnet.DataResult"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 9749,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 9746,
                        "name": "_report",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9730,
                        "src": "2199:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        }
                      },
                      {
                        "id": 9747,
                        "name": "_signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9732,
                        "src": "2208:10:29",
                        "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": 9744,
                        "name": "WitOracleDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20110,
                        "src": "2166:16:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleDataLib_$20110_$",
                          "typeString": "type(library WitOracleDataLib)"
                        }
                      },
                      "id": 9745,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2183:15:29",
                      "memberName": "parseDataReport",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18737,
                      "src": "2166:32:29",
                      "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": 9748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2166:53:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_struct$_DataResult_$37293_memory_ptr_$",
                      "typeString": "tuple(address,struct Witnet.DataResult memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2109:110:29"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 9751,
                          "name": "tx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967270,
                          "src": "2265:2:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_transaction",
                            "typeString": "tx"
                          }
                        },
                        "id": 9752,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2268:6:29",
                        "memberName": "origin",
                        "nodeType": "MemberAccess",
                        "src": "2265:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 9753,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "2290:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 9754,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2294:6:29",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "2290:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 9755,
                        "name": "_evmSigner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9740,
                        "src": "2316:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 9756,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9730,
                          "src": "2342:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2350:11:29",
                        "memberName": "witDrTxHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37262,
                        "src": "2342:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                          "typeString": "Witnet.TransactionHash"
                        }
                      },
                      {
                        "expression": {
                          "id": 9758,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9730,
                          "src": "2376:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9759,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2384:12:29",
                        "memberName": "queryRadHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37265,
                        "src": "2376:20:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      },
                      {
                        "expression": {
                          "id": 9760,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9730,
                          "src": "2411:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9761,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2419:11:29",
                        "memberName": "queryParams",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37268,
                        "src": "2411:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                          "typeString": "struct Witnet.QuerySLA calldata"
                        }
                      },
                      {
                        "expression": {
                          "id": 9762,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9730,
                          "src": "2445:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2453:15:29",
                        "memberName": "resultTimestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37271,
                        "src": "2445:23:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      },
                      {
                        "expression": {
                          "id": 9764,
                          "name": "_report",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9730,
                          "src": "2483:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                            "typeString": "struct Witnet.DataPushReport calldata"
                          }
                        },
                        "id": 9765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2491:15:29",
                        "memberName": "resultCborBytes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37273,
                        "src": "2483:23:29",
                        "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": 9750,
                      "name": "WitOracleReport",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26543,
                      "src": "2235:15:29",
                      "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": 9766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2235:282:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9767,
                  "nodeType": "EmitStatement",
                  "src": "2230:287:29"
                },
                {
                  "expression": {
                    "id": 9768,
                    "name": "_result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9743,
                    "src": "2535:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "functionReturnParameters": 9738,
                  "id": 9769,
                  "nodeType": "Return",
                  "src": "2528:14:29"
                }
              ]
            },
            "functionSelector": "6d0d6a7e",
            "id": 9771,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pushDataReport",
            "nameLocation": "1932:14:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9734,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2031:8:29"
            },
            "parameters": {
              "id": 9733,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9730,
                  "mutability": "mutable",
                  "name": "_report",
                  "nameLocation": "1978:7:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9771,
                  "src": "1947:38:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 9729,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9728,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "1947:6:29",
                        "1954:14:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "1947:21:29"
                    },
                    "referencedDeclaration": 37274,
                    "src": "1947:21:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9732,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nameLocation": "2002:10:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9771,
                  "src": "1987:25:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9731,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1987:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1946:67:29"
            },
            "returnParameters": {
              "id": 9738,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9737,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9771,
                  "src": "2067:24:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                    "typeString": "struct Witnet.DataResult"
                  },
                  "typeName": {
                    "id": 9736,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9735,
                      "name": "Witnet.DataResult",
                      "nameLocations": [
                        "2067:6:29",
                        "2074:10:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37293,
                      "src": "2067:17:29"
                    },
                    "referencedDeclaration": 37293,
                    "src": "2067:17:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                      "typeString": "struct Witnet.DataResult"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2066:26:29"
            },
            "scope": 9936,
            "src": "1923:627:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27644
            ],
            "body": {
              "id": 9785,
              "nodeType": "Block",
              "src": "2958:77:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9782,
                        "name": "timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9774,
                        "src": "3017:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      ],
                      "expression": {
                        "id": 9780,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "2976:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 9781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2983:33:29",
                      "memberName": "determineBeaconIndexFromTimestamp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 40148,
                      "src": "2976:40:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                        "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                      }
                    },
                    "id": 9783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2976:51:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 9779,
                  "id": 9784,
                  "nodeType": "Return",
                  "src": "2969:58:29"
                }
              ]
            },
            "functionSelector": "17d298d0",
            "id": 9786,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineBeaconIndexFromTimestamp",
            "nameLocation": "2816:33:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9776,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2895:8:29"
            },
            "parameters": {
              "id": 9775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9774,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "2867:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9786,
                  "src": "2850:26:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 9773,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9772,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "2850:6:29",
                        "2857:9:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "2850:16:29"
                    },
                    "referencedDeclaration": 37157,
                    "src": "2850:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2849:28:29"
            },
            "returnParameters": {
              "id": 9779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9778,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9786,
                  "src": "2945:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 9777,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "2945:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2944:8:29"
            },
            "scope": 9936,
            "src": "2807:228:29",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27653
            ],
            "body": {
              "id": 9801,
              "nodeType": "Block",
              "src": "3204:71:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9798,
                        "name": "timestamp",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9789,
                        "src": "3257:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                          "typeString": "Witnet.Timestamp"
                        }
                      ],
                      "expression": {
                        "id": 9796,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "3222:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 9797,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3229:27:29",
                      "memberName": "determineEpochFromTimestamp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 40208,
                      "src": "3222:34:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_userDefinedValueType$_BlockNumber_$37145_$",
                        "typeString": "function (Witnet.Timestamp) pure returns (Witnet.BlockNumber)"
                      }
                    },
                    "id": 9799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3222:45:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "functionReturnParameters": 9795,
                  "id": 9800,
                  "nodeType": "Return",
                  "src": "3215:52:29"
                }
              ]
            },
            "functionSelector": "0f884886",
            "id": 9802,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "determineEpochFromTimestamp",
            "nameLocation": "3056:27:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9791,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3129:8:29"
            },
            "parameters": {
              "id": 9790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9789,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "3101:9:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9802,
                  "src": "3084:26:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 9788,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9787,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "3084:6:29",
                        "3091:9:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "3084:16:29"
                    },
                    "referencedDeclaration": 37157,
                    "src": "3084:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3083:28:29"
            },
            "returnParameters": {
              "id": 9795,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9794,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9802,
                  "src": "3179:18:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 9793,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9792,
                      "name": "Witnet.BlockNumber",
                      "nameLocations": [
                        "3179:6:29",
                        "3186:11:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "3179:18:29"
                    },
                    "referencedDeclaration": 37145,
                    "src": "3179:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3178:20:29"
            },
            "scope": 9936,
            "src": "3047:228:29",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27661
            ],
            "body": {
              "id": 9816,
              "nodeType": "Block",
              "src": "3415:69:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9813,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9804,
                        "src": "3470:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "expression": {
                        "id": 9811,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "3433:25:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 9812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3459:10:29",
                      "memberName": "seekBeacon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20679,
                      "src": "3433:36:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Beacon_$37242_storage_ptr_$",
                        "typeString": "function (uint256) view returns (struct Witnet.Beacon storage pointer)"
                      }
                    },
                    "id": 9814,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3433:43:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon storage pointer"
                    }
                  },
                  "functionReturnParameters": 9810,
                  "id": 9815,
                  "nodeType": "Return",
                  "src": "3426:50:29"
                }
              ]
            },
            "functionSelector": "47ad9e69",
            "id": 9817,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBeaconByIndex",
            "nameLocation": "3292:16:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9806,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3340:8:29"
            },
            "parameters": {
              "id": 9805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9804,
                  "mutability": "mutable",
                  "name": "index",
                  "nameLocation": "3316:5:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9817,
                  "src": "3309:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 9803,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3309:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3308:14:29"
            },
            "returnParameters": {
              "id": 9810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9809,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9817,
                  "src": "3388:20:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 9808,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9807,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "3388:6:29",
                        "3395:6:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "3388:13:29"
                    },
                    "referencedDeclaration": 37242,
                    "src": "3388:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3387:22:29"
            },
            "scope": 9936,
            "src": "3283:201:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27667
            ],
            "body": {
              "id": 9847,
              "nodeType": "Block",
              "src": "3616:759:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 9826,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "3670:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9827,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "3677:26:29",
                        "memberName": "WIT_2_GENESIS_BEACON_INDEX",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37168,
                        "src": "3670:33:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "expression": {
                          "id": 9828,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "3729:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "3736:31:29",
                        "memberName": "WIT_2_GENESIS_BEACON_PREV_INDEX",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37171,
                        "src": "3729:38:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "expression": {
                          "id": 9830,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "3792:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9831,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "3799:30:29",
                        "memberName": "WIT_2_GENESIS_BEACON_PREV_ROOT",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37174,
                        "src": "3792:37:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes24",
                          "typeString": "bytes24"
                        }
                      },
                      {
                        "expression": {
                          "id": 9832,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "3866:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9833,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "3873:44:29",
                        "memberName": "WIT_2_GENESIS_BEACON_DDR_TALLIES_MERKLE_ROOT",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37177,
                        "src": "3866:51:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "expression": {
                          "id": 9834,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "3954:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 9835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "3961:44:29",
                        "memberName": "WIT_2_GENESIS_BEACON_DRO_TALLIES_MERKLE_ROOT",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37180,
                        "src": "3954:51:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        }
                      },
                      {
                        "components": [
                          {
                            "expression": {
                              "id": 9836,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "4063:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 9837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "4070:48:29",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_0",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37183,
                            "src": "4063:55:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 9838,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "4137:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 9839,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "4144:48:29",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_1",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37186,
                            "src": "4137:55:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 9840,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "4211:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 9841,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "4218:48:29",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_2",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37189,
                            "src": "4211:55:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 9842,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "4285:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 9843,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "4292:48:29",
                            "memberName": "WIT_2_GENESIS_BEACON_NEXT_COMMITTEE_AGG_PUBKEY_3",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37192,
                            "src": "4285:55:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 9844,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "4044:311:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                          "typeString": "uint256[4] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes24",
                          "typeString": "bytes24"
                        },
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_bytes16",
                          "typeString": "bytes16"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                          "typeString": "uint256[4] memory"
                        }
                      ],
                      "expression": {
                        "id": 9824,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 40741,
                        "src": "3634:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 9825,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3641:6:29",
                      "memberName": "Beacon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37242,
                      "src": "3634:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Beacon_$37242_storage_ptr_$",
                        "typeString": "type(struct Witnet.Beacon storage pointer)"
                      }
                    },
                    "id": 9845,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "3663:5:29",
                      "3718:9:29",
                      "3782:8:29",
                      "3844:20:29",
                      "3932:20:29",
                      "4020:22:29"
                    ],
                    "names": [
                      "index",
                      "prevIndex",
                      "prevRoot",
                      "ddrTalliesMerkleRoot",
                      "droTalliesMerkleRoot",
                      "nextCommitteeAggPubkey"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "3634:733:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                      "typeString": "struct Witnet.Beacon memory"
                    }
                  },
                  "functionReturnParameters": 9823,
                  "id": 9846,
                  "nodeType": "Return",
                  "src": "3627:740:29"
                }
              ]
            },
            "functionSelector": "d4038ac6",
            "id": 9848,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getGenesisBeacon",
            "nameLocation": "3501:16:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9819,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3538:8:29"
            },
            "parameters": {
              "id": 9818,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3517:2:29"
            },
            "returnParameters": {
              "id": 9823,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9822,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9848,
                  "src": "3589:20:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 9821,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9820,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "3589:6:29",
                        "3596:6:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "3589:13:29"
                    },
                    "referencedDeclaration": 37242,
                    "src": "3589:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3588:22:29"
            },
            "scope": 9936,
            "src": "3492:883:29",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27673
            ],
            "body": {
              "id": 9859,
              "nodeType": "Block",
              "src": "4506:72:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 9855,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "4524:25:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 9856,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4550:18:29",
                      "memberName": "getLastKnownBeacon",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20581,
                      "src": "4524:44:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_struct$_Beacon_$37242_storage_ptr_$",
                        "typeString": "function () view returns (struct Witnet.Beacon storage pointer)"
                      }
                    },
                    "id": 9857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4524:46:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon storage pointer"
                    }
                  },
                  "functionReturnParameters": 9854,
                  "id": 9858,
                  "nodeType": "Return",
                  "src": "4517:53:29"
                }
              ]
            },
            "functionSelector": "8bfabb4f",
            "id": 9860,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLastKnownBeacon",
            "nameLocation": "4392:18:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9850,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4431:8:29"
            },
            "parameters": {
              "id": 9849,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4410:2:29"
            },
            "returnParameters": {
              "id": 9854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9853,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9860,
                  "src": "4479:20:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 9852,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9851,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "4479:6:29",
                        "4486:6:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "4479:13:29"
                    },
                    "referencedDeclaration": 37242,
                    "src": "4479:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4478:22:29"
            },
            "scope": 9936,
            "src": "4383:195:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27678
            ],
            "body": {
              "id": 9873,
              "nodeType": "Block",
              "src": "4699:85:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 9868,
                            "name": "WitOracleTrustlessDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22249,
                            "src": "4724:25:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                              "typeString": "type(library WitOracleTrustlessDataLib)"
                            }
                          },
                          "id": 9869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4750:23:29",
                          "memberName": "getLastKnownBeaconIndex",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 20591,
                          "src": "4724:49:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 9870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4724:51:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9867,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "4717:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint32_$",
                        "typeString": "type(uint32)"
                      },
                      "typeName": {
                        "id": 9866,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4717:6:29",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 9871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4717:59:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 9865,
                  "id": 9872,
                  "nodeType": "Return",
                  "src": "4710:66:29"
                }
              ]
            },
            "functionSelector": "fe52e05f",
            "id": 9874,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLastKnownBeaconIndex",
            "nameLocation": "4595:23:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9862,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4638:8:29"
            },
            "parameters": {
              "id": 9861,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4618:2:29"
            },
            "returnParameters": {
              "id": 9865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9864,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9874,
                  "src": "4686:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 9863,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4686:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4685:8:29"
            },
            "scope": 9936,
            "src": "4586:198:29",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27688
            ],
            "body": {
              "id": 9915,
              "nodeType": "Block",
              "src": "4942:397:29",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 9895,
                        "nodeType": "Block",
                        "src": "5109:58:29",
                        "statements": [
                          {
                            "expression": {
                              "id": 9893,
                              "name": "_witOracleHead",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9891,
                              "src": "5131:14:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                                "typeString": "struct Witnet.Beacon memory"
                              }
                            },
                            "functionReturnParameters": 9884,
                            "id": 9894,
                            "nodeType": "Return",
                            "src": "5124:21:29"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 9896,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 9892,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 9891,
                            "mutability": "mutable",
                            "name": "_witOracleHead",
                            "nameLocation": "5083:14:29",
                            "nodeType": "VariableDeclaration",
                            "scope": 9896,
                            "src": "5062:35:29",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                              "typeString": "struct Witnet.Beacon"
                            },
                            "typeName": {
                              "id": 9890,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 9889,
                                "name": "Witnet.Beacon",
                                "nameLocations": [
                                  "5062:6:29",
                                  "5069:6:29"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37242,
                                "src": "5062:13:29"
                              },
                              "referencedDeclaration": 37242,
                              "src": "5062:13:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                                "typeString": "struct Witnet.Beacon"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "5047:61:29"
                      },
                      "src": "5039:128:29"
                    },
                    {
                      "block": {
                        "id": 9904,
                        "nodeType": "Block",
                        "src": "5203:53:29",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 9901,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9898,
                                  "src": "5226:7:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 9900,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "5218:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 9902,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5218:16:29",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 9903,
                            "nodeType": "ExpressionStatement",
                            "src": "5218:16:29"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 9905,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 9899,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 9898,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "5194:7:29",
                            "nodeType": "VariableDeclaration",
                            "scope": 9905,
                            "src": "5180:21:29",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 9897,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "5180:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "5179:23:29"
                      },
                      "src": "5168:88:29"
                    },
                    {
                      "block": {
                        "id": 9912,
                        "nodeType": "Block",
                        "src": "5278:54:29",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 9909,
                                "name": "_revertUnhandledException",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9449,
                                "src": "5293:25:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 9910,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5293:27:29",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 9911,
                            "nodeType": "ExpressionStatement",
                            "src": "5293:27:29"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 9913,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 9908,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 9907,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 9913,
                            "src": "5264:12:29",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 9906,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "5264:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "5263:14:29"
                      },
                      "src": "5257:75:29"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 9887,
                        "name": "_witOracleRollup",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9878,
                        "src": "5011:16:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct Witnet.FastForward calldata[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 9885,
                        "name": "WitOracleTrustlessDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22249,
                        "src": "4957:25:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                          "typeString": "type(library WitOracleTrustlessDataLib)"
                        }
                      },
                      "id": 9886,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4983:13:29",
                      "memberName": "rollupBeacons",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20630,
                      "src": "4957:39:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_array$_t_struct$_FastForward_$37306_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_Beacon_$37242_memory_ptr_$",
                        "typeString": "function (struct Witnet.FastForward memory[] memory) returns (struct Witnet.Beacon memory)"
                      }
                    },
                    "id": 9888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4957:81:29",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                      "typeString": "struct Witnet.Beacon memory"
                    }
                  },
                  "id": 9914,
                  "nodeType": "TryStatement",
                  "src": "4953:379:29"
                }
              ]
            },
            "functionSelector": "05760031",
            "id": 9916,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rollupBeacons",
            "nameLocation": "4801:13:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9880,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4880:8:29"
            },
            "parameters": {
              "id": 9879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9878,
                  "mutability": "mutable",
                  "name": "_witOracleRollup",
                  "nameLocation": "4845:16:29",
                  "nodeType": "VariableDeclaration",
                  "scope": 9916,
                  "src": "4815:46:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct Witnet.FastForward[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9876,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 9875,
                        "name": "Witnet.FastForward",
                        "nameLocations": [
                          "4815:6:29",
                          "4822:11:29"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37306,
                        "src": "4815:18:29"
                      },
                      "referencedDeclaration": 37306,
                      "src": "4815:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                        "typeString": "struct Witnet.FastForward"
                      }
                    },
                    "id": 9877,
                    "nodeType": "ArrayTypeName",
                    "src": "4815:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.FastForward[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4814:48:29"
            },
            "returnParameters": {
              "id": 9884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9883,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9916,
                  "src": "4915:20:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 9882,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 9881,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "4915:6:29",
                        "4922:6:29"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "4915:13:29"
                    },
                    "referencedDeclaration": 37242,
                    "src": "4915:13:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4914:22:29"
            },
            "scope": 9936,
            "src": "4792:547:29",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              9454
            ],
            "body": {
              "id": 9934,
              "nodeType": "Block",
              "src": "5712:150:29",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 9927,
                                  "name": "WitOracleTrustlessDataLib",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22249,
                                  "src": "5773:25:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                    "typeString": "type(library WitOracleTrustlessDataLib)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_WitOracleTrustlessDataLib_$22249_$",
                                    "typeString": "type(library WitOracleTrustlessDataLib)"
                                  }
                                ],
                                "id": 9926,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "5768:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 9928,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5768:31:29",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_WitOracleTrustlessDataLib_$22249",
                                "typeString": "type(library WitOracleTrustlessDataLib)"
                              }
                            },
                            "id": 9929,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "5800:4:29",
                            "memberName": "name",
                            "nodeType": "MemberAccess",
                            "src": "5768:36:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "hexValue": "3a20756e68616e646c656420617373657274696f6e",
                            "id": 9930,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5819:23:29",
                            "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": 9924,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "5737:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 9925,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "5741:12:29",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "5737:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 9931,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5737:116:29",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 9923,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5730:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 9922,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "5730:6:29",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 9932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5730:124:29",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 9921,
                  "id": 9933,
                  "nodeType": "Return",
                  "src": "5723:131:29"
                }
              ]
            },
            "id": 9935,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_revertUnhandledExceptionReason",
            "nameLocation": "5608:31:29",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 9918,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5660:8:29"
            },
            "parameters": {
              "id": 9917,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5639:2:29"
            },
            "returnParameters": {
              "id": 9921,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9920,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 9935,
                  "src": "5692:13:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 9919,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5692:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5691:15:29"
            },
            "scope": 9936,
            "src": "5599:263:29",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 9937,
        "src": "308:5798:29",
        "usedErrors": [
          26521
        ],
        "usedEvents": [
          26543,
          27636
        ]
      }
    ],
    "src": "35:6073:29"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.476Z",
  "devdoc": {
    "author": "The Witnet Foundation",
    "kind": "dev",
    "methods": {},
    "title": "Push-only WitOracle \"trustless\" base implementation.",
    "version": 1
  },
  "userdoc": {
    "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."
      },
      "registry()": {
        "notice": "Returns the WitOracleRadonRegistry in which Witnet-compliant Radon requestscan be formally verified and forever registered as a away to let smart contracts and users to track actual data sources and offchain computations applied on data updates safely reported from the Wit/Oracle blockchain. "
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      }
    },
    "version": 1
  }
}