{
  "contractName": "IWitOracleTrustless",
  "abi": [
    {
      "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"
    },
    {
      "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": "ff",
          "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\":[{\"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\"},{\"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\":\"ff\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IWitOracleTrustless.sol\":\"IWitOracleTrustless\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitOracleTrustless.sol\":{\"keccak256\":\"0x9220a2dd4736b37d909af59603b3d125758deb5d1845650aaa7c92cabd75f75b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d224d9c72e077605427b87c1fa1b47de53b1835dd148a27c13e9eb5a620e6d\",\"dweb:/ipfs/Qmaz8y5E4c73Zw4y4Siy2J3oNuhw9M7v2s7uC9XLi6dZaw\"]},\"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\"]}},\"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 \"../libs/Witnet.sol\";\r\n\r\ninterface IWitOracleTrustless {\r\n\r\n    event Rollup(Witnet.Beacon head);\r\n\r\n    function determineBeaconIndexFromTimestamp(Witnet.Timestamp timestamp) external pure returns (uint64);\r\n    function determineEpochFromTimestamp(Witnet.Timestamp timestamp) external pure returns (Witnet.BlockNumber);\r\n\r\n    function getBeaconByIndex(uint32 index) external view returns (Witnet.Beacon memory);\r\n    function getGenesisBeacon() external pure returns (Witnet.Beacon memory);\r\n    function getLastKnownBeacon() external view returns (Witnet.Beacon memory);\r\n    function getLastKnownBeaconIndex() external view returns (uint32);\r\n\r\n    function rollupBeacons(Witnet.FastForward[] calldata ff) external returns (Witnet.Beacon memory);\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\interfaces\\IWitOracleTrustless.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/IWitOracleTrustless.sol",
    "exportedSymbols": {
      "Bech32": [
        31372
      ],
      "IWitOracleTrustless": [
        27689
      ],
      "Secp256k1": [
        32535
      ],
      "Witnet": [
        40741
      ],
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 27690,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 27630,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:79"
      },
      {
        "absolutePath": "project:/contracts/libs/Witnet.sol",
        "file": "../libs/Witnet.sol",
        "id": 27631,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27690,
        "sourceUnit": 40742,
        "src": "70:28:79",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "IWitOracleTrustless",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 27689,
        "linearizedBaseContracts": [
          27689
        ],
        "name": "IWitOracleTrustless",
        "nameLocation": "112:19:79",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "eventSelector": "a6c87e90e325ce88c911f114881deb39dabb89e1ba9bf11a1a8e0ca8de94798a",
            "id": 27636,
            "name": "Rollup",
            "nameLocation": "147:6:79",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 27635,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27634,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "head",
                  "nameLocation": "168:4:79",
                  "nodeType": "VariableDeclaration",
                  "scope": 27636,
                  "src": "154:18:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 27633,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27632,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "154:6:79",
                        "161:6:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "154:13:79"
                    },
                    "referencedDeclaration": 37242,
                    "src": "154:13:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "153:20:79"
            },
            "src": "141:33:79"
          },
          {
            "functionSelector": "17d298d0",
            "id": 27644,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "determineBeaconIndexFromTimestamp",
            "nameLocation": "191:33:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27639,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "242:9:79",
                  "nodeType": "VariableDeclaration",
                  "scope": 27644,
                  "src": "225:26:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 27638,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27637,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "225:6:79",
                        "232:9:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "225:16:79"
                    },
                    "referencedDeclaration": 37157,
                    "src": "225:16:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "224:28:79"
            },
            "returnParameters": {
              "id": 27643,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27642,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27644,
                  "src": "276:6:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 27641,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "276:6:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "275:8:79"
            },
            "scope": 27689,
            "src": "182:102:79",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "0f884886",
            "id": 27653,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "determineEpochFromTimestamp",
            "nameLocation": "299:27:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27647,
                  "mutability": "mutable",
                  "name": "timestamp",
                  "nameLocation": "344:9:79",
                  "nodeType": "VariableDeclaration",
                  "scope": 27653,
                  "src": "327:26:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 27646,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27645,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "327:6:79",
                        "334:9:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "327:16:79"
                    },
                    "referencedDeclaration": 37157,
                    "src": "327:16:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "326:28:79"
            },
            "returnParameters": {
              "id": 27652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27651,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27653,
                  "src": "378:18:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                    "typeString": "Witnet.BlockNumber"
                  },
                  "typeName": {
                    "id": 27650,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27649,
                      "name": "Witnet.BlockNumber",
                      "nameLocations": [
                        "378:6:79",
                        "385:11:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37145,
                      "src": "378:18:79"
                    },
                    "referencedDeclaration": 37145,
                    "src": "378:18:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_BlockNumber_$37145",
                      "typeString": "Witnet.BlockNumber"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "377:20:79"
            },
            "scope": 27689,
            "src": "290:108:79",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "47ad9e69",
            "id": 27661,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBeaconByIndex",
            "nameLocation": "415:16:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27656,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27655,
                  "mutability": "mutable",
                  "name": "index",
                  "nameLocation": "439:5:79",
                  "nodeType": "VariableDeclaration",
                  "scope": 27661,
                  "src": "432:12:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 27654,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "432:6:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "431:14:79"
            },
            "returnParameters": {
              "id": 27660,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27659,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27661,
                  "src": "469:20:79",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 27658,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27657,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "469:6:79",
                        "476:6:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "469:13:79"
                    },
                    "referencedDeclaration": 37242,
                    "src": "469:13:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "468:22:79"
            },
            "scope": 27689,
            "src": "406:85:79",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d4038ac6",
            "id": 27667,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getGenesisBeacon",
            "nameLocation": "506:16:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27662,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "522:2:79"
            },
            "returnParameters": {
              "id": 27666,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27665,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27667,
                  "src": "548:20:79",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 27664,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27663,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "548:6:79",
                        "555:6:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "548:13:79"
                    },
                    "referencedDeclaration": 37242,
                    "src": "548:13:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "547:22:79"
            },
            "scope": 27689,
            "src": "497:73:79",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8bfabb4f",
            "id": 27673,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getLastKnownBeacon",
            "nameLocation": "585:18:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27668,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "603:2:79"
            },
            "returnParameters": {
              "id": 27672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27671,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27673,
                  "src": "629:20:79",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 27670,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27669,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "629:6:79",
                        "636:6:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "629:13:79"
                    },
                    "referencedDeclaration": 37242,
                    "src": "629:13:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "628:22:79"
            },
            "scope": 27689,
            "src": "576:75:79",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe52e05f",
            "id": 27678,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getLastKnownBeaconIndex",
            "nameLocation": "666:23:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27674,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "689:2:79"
            },
            "returnParameters": {
              "id": 27677,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27676,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27678,
                  "src": "715:6:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 27675,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "715:6:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "714:8:79"
            },
            "scope": 27689,
            "src": "657:66:79",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "05760031",
            "id": 27688,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "rollupBeacons",
            "nameLocation": "740:13:79",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27682,
                  "mutability": "mutable",
                  "name": "ff",
                  "nameLocation": "784:2:79",
                  "nodeType": "VariableDeclaration",
                  "scope": 27688,
                  "src": "754:32:79",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct Witnet.FastForward[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 27680,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 27679,
                        "name": "Witnet.FastForward",
                        "nameLocations": [
                          "754:6:79",
                          "761:11:79"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 37306,
                        "src": "754:18:79"
                      },
                      "referencedDeclaration": 37306,
                      "src": "754:18:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_FastForward_$37306_storage_ptr",
                        "typeString": "struct Witnet.FastForward"
                      }
                    },
                    "id": 27681,
                    "nodeType": "ArrayTypeName",
                    "src": "754:20:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_FastForward_$37306_storage_$dyn_storage_ptr",
                      "typeString": "struct Witnet.FastForward[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "753:34:79"
            },
            "returnParameters": {
              "id": 27687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27686,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27688,
                  "src": "806:20:79",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Beacon_$37242_memory_ptr",
                    "typeString": "struct Witnet.Beacon"
                  },
                  "typeName": {
                    "id": 27685,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27684,
                      "name": "Witnet.Beacon",
                      "nameLocations": [
                        "806:6:79",
                        "813:6:79"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37242,
                      "src": "806:13:79"
                    },
                    "referencedDeclaration": 37242,
                    "src": "806:13:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Beacon_$37242_storage_ptr",
                      "typeString": "struct Witnet.Beacon"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "805:22:79"
            },
            "scope": 27689,
            "src": "731:97:79",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 27690,
        "src": "102:729:79",
        "usedErrors": [],
        "usedEvents": [
          27636
        ]
      }
    ],
    "src": "35:798:79"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.908Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}