[
    {
        "inputs": [
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }
        ],
        "name": "BlockTimestampIsTooBig",
        "type": "error"
    },
    { "inputs": [], "name": "CalldataMustHaveValidPayload", "type": "error" },
    { "inputs": [], "name": "CalldataOverOrUnderFlow", "type": "error" },
    { "inputs": [], "name": "CanNotPickMedianOfEmptyArray", "type": "error" },
    { "inputs": [], "name": "CannotUpdateMoreThanOneDataFeed", "type": "error" },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" }
        ],
        "name": "DataFeedIdNotFound",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" }
        ],
        "name": "DataFeedValueCannotBeZero",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "expectedDataTimestamp",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "dataPackageTimestamp",
                "type": "uint256"
            }
        ],
        "name": "DataPackageTimestampMismatch",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "DataPackageTimestampMustNotBeZero",
        "type": "error"
    },
    { "inputs": [], "name": "DataPackageTimestampsMustBeEqual", "type": "error" },
    {
        "inputs": [
            { "internalType": "uint256", "name": "dataTimestamp", "type": "uint256" }
        ],
        "name": "DataTimestampIsTooBig",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "receivedDataTimestampMilliseconds",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "lastDataTimestampMilliseconds",
                "type": "uint256"
            }
        ],
        "name": "DataTimestampShouldBeNewerThanBefore",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "EachSignerMustProvideTheSameValue",
        "type": "error"
    },
    { "inputs": [], "name": "EmptyCalldataPointersArr", "type": "error" },
    { "inputs": [], "name": "GetDataServiceIdNotImplemented", "type": "error" },
    { "inputs": [], "name": "IncorrectUnsignedMetadataSize", "type": "error" },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "receivedSignersCount",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "requiredSignersCount",
                "type": "uint256"
            }
        ],
        "name": "InsufficientNumberOfUniqueSigners",
        "type": "error"
    },
    { "inputs": [], "name": "InvalidCalldataPointer", "type": "error" },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "currentBlockTimestamp",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "lastUpdateTimestamp",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "minIntervalBetweenUpdates",
                "type": "uint256"
            }
        ],
        "name": "MinIntervalBetweenUpdatesHasNotPassedYet",
        "type": "error"
    },
    {
        "inputs": [],
        "name": "RedstonePayloadMustHaveAtLeastOneDataPackage",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "roundId", "type": "uint256" }
        ],
        "name": "RoundNotFound",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "address", "name": "receivedSigner", "type": "address" }
        ],
        "name": "SignerNotAuthorised",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "receivedTimestampSeconds",
                "type": "uint256"
            },
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }
        ],
        "name": "TimestampFromTooLongFuture",
        "type": "error"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "receivedTimestampSeconds",
                "type": "uint256"
            },
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }
        ],
        "name": "TimestampIsTooOld",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "UnsafeUint256ToUint80Conversion",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "UnsafeUintToIntConversion",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "address", "name": "signer", "type": "address" }
        ],
        "name": "UpdaterNotAuthorised",
        "type": "error"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "int256",
                "name": "current",
                "type": "int256"
            },
            {
                "indexed": true,
                "internalType": "uint256",
                "name": "roundId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "updatedAt",
                "type": "uint256"
            }
        ],
        "name": "AnswerUpdated",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "uint8",
                "name": "version",
                "type": "uint8"
            }
        ],
        "name": "Initialized",
        "type": "event"
    },
    {
        "inputs": [
            { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }
        ],
        "name": "aggregateValues",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "aggregator",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "decimals",
        "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "description",
        "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "extractTimestampsAndAssertAllAreEqual",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "extractedTimestamp",
                "type": "uint256"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getAllowedTimestampDiffsInSeconds",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "maxDataAheadSeconds",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "maxDataDelaySeconds",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "address", "name": "signerAddress", "type": "address" }
        ],
        "name": "getAuthorisedSignerIndex",
        "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getBlockTimestamp",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getBlockTimestampFromLatestUpdate",
        "outputs": [
            { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getDataFeedId",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getDataFeedIds",
        "outputs": [
            {
                "internalType": "bytes32[]",
                "name": "dataFeedIds",
                "type": "bytes32[]"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" }
        ],
        "name": "getDataFeedIndex",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getDataServiceId",
        "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getDataTimestampFromLatestUpdate",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "lastDataTimestamp",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getLatestRoundId",
        "outputs": [
            { "internalType": "uint256", "name": "latestRoundId", "type": "uint256" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getLatestRoundParams",
        "outputs": [
            { "internalType": "uint256", "name": "latestRoundId", "type": "uint256" },
            {
                "internalType": "uint128",
                "name": "latestRoundDataTimestamp",
                "type": "uint128"
            },
            {
                "internalType": "uint128",
                "name": "latestRoundBlockTimestamp",
                "type": "uint128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getMinIntervalBetweenUpdates",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "roundId", "type": "uint256" }
        ],
        "name": "getPackedTimestampsForRound",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "roundTimestamps",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getPackedTimestampsFromLatestUpdate",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "packedTimestamps",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getPriceFeedAdapter",
        "outputs": [
            {
                "internalType": "contract IRedstoneAdapter",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getPriceFeedAdapterWithRounds",
        "outputs": [
            {
                "internalType": "contract PriceFeedsAdapterWithRounds",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "uint80", "name": "requestedRoundId", "type": "uint80" }
        ],
        "name": "getRoundData",
        "outputs": [
            { "internalType": "uint80", "name": "roundId", "type": "uint80" },
            { "internalType": "int256", "name": "answer", "type": "int256" },
            { "internalType": "uint256", "name": "startedAt", "type": "uint256" },
            { "internalType": "uint256", "name": "updatedAt", "type": "uint256" },
            { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" },
            { "internalType": "uint256", "name": "roundId", "type": "uint256" }
        ],
        "name": "getRoundDataFromAdapter",
        "outputs": [
            { "internalType": "uint256", "name": "dataFeedValue", "type": "uint256" },
            {
                "internalType": "uint128",
                "name": "roundDataTimestamp",
                "type": "uint128"
            },
            {
                "internalType": "uint128",
                "name": "roundBlockTimestamp",
                "type": "uint128"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getTimestampsFromLatestUpdate",
        "outputs": [
            { "internalType": "uint128", "name": "dataTimestamp", "type": "uint128" },
            { "internalType": "uint128", "name": "blockTimestamp", "type": "uint128" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getUniqueSignersThreshold",
        "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" }
        ],
        "name": "getValueForDataFeed",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" },
            { "internalType": "uint256", "name": "roundId", "type": "uint256" }
        ],
        "name": "getValueForDataFeedAndRound",
        "outputs": [
            { "internalType": "uint256", "name": "dataFeedValue", "type": "uint256" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" }
        ],
        "name": "getValueForDataFeedUnsafe",
        "outputs": [
            { "internalType": "uint256", "name": "dataFeedValue", "type": "uint256" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes32[]",
                "name": "dataFeedIds",
                "type": "bytes32[]"
            }
        ],
        "name": "getValuesForDataFeeds",
        "outputs": [
            { "internalType": "uint256[]", "name": "", "type": "uint256[]" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes32[]",
                "name": "requestedDataFeedIds",
                "type": "bytes32[]"
            }
        ],
        "name": "getValuesForDataFeedsUnsafe",
        "outputs": [
            { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "initialize",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "latestAnswer",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "latestRound",
        "outputs": [{ "internalType": "uint80", "name": "", "type": "uint80" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "latestRoundData",
        "outputs": [
            { "internalType": "uint80", "name": "roundId", "type": "uint80" },
            { "internalType": "int256", "name": "answer", "type": "int256" },
            { "internalType": "uint256", "name": "startedAt", "type": "uint256" },
            { "internalType": "uint256", "name": "updatedAt", "type": "uint256" },
            { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "address", "name": "updater", "type": "address" }
        ],
        "name": "requireAuthorisedUpdater",
        "outputs": [],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "dataPackagesTimestamp",
                "type": "uint256"
            }
        ],
        "name": "updateDataFeedsValues",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "dataFeedId", "type": "bytes32" },
            {
                "internalType": "uint256",
                "name": "valueForDataFeed",
                "type": "uint256"
            }
        ],
        "name": "validateDataFeedValue",
        "outputs": [],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "dataPackagesTimestamp",
                "type": "uint256"
            }
        ],
        "name": "validateDataPackagesTimestampOnce",
        "outputs": [],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "dataPackagesTimestamp",
                "type": "uint256"
            }
        ],
        "name": "validateProposedDataPackagesTimestamp",
        "outputs": [],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "receivedTimestampMilliseconds",
                "type": "uint256"
            }
        ],
        "name": "validateTimestamp",
        "outputs": [],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "version",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "pure",
        "type": "function"
    }
]
