[
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "_maximumGasPrice",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_reasonableGasPrice",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_microLinkPerEth",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_linkGweiPerObservation",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_linkGweiPerTransmission",
        "type": "uint32"
      },
      { "internalType": "address", "name": "_link", "type": "address" },
      { "internalType": "int192", "name": "_minAnswer", "type": "int192" },
      { "internalType": "int192", "name": "_maxAnswer", "type": "int192" },
      {
        "internalType": "contract AccessControllerInterface",
        "name": "_billingAccessController",
        "type": "address"
      },
      {
        "internalType": "contract AccessControllerInterface",
        "name": "_requesterAccessController",
        "type": "address"
      },
      { "internalType": "uint8", "name": "_decimals", "type": "uint8" },
      { "internalType": "string", "name": "description", "type": "string" }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "user",
        "type": "address"
      }
    ],
    "name": "AddedAccess",
    "type": "event"
  },
  {
    "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": "contract AccessControllerInterface",
        "name": "old",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "contract AccessControllerInterface",
        "name": "current",
        "type": "address"
      }
    ],
    "name": "BillingAccessControllerSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "maximumGasPrice",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "reasonableGasPrice",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "microLinkPerEth",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "linkGweiPerObservation",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "linkGweiPerTransmission",
        "type": "uint32"
      }
    ],
    "name": "BillingSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [],
    "name": "CheckAccessDisabled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [],
    "name": "CheckAccessEnabled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "previousConfigBlockNumber",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "configCount",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "address[]",
        "name": "signers",
        "type": "address[]"
      },
      {
        "indexed": false,
        "internalType": "address[]",
        "name": "transmitters",
        "type": "address[]"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "threshold",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "encodedConfigVersion",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "encoded",
        "type": "bytes"
      }
    ],
    "name": "ConfigSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "roundId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "startedBy",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "startedAt",
        "type": "uint256"
      }
    ],
    "name": "NewRound",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint32",
        "name": "aggregatorRoundId",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "int192",
        "name": "answer",
        "type": "int192"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "transmitter",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "int192[]",
        "name": "observations",
        "type": "int192[]"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "observers",
        "type": "bytes"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "rawReportContext",
        "type": "bytes32"
      }
    ],
    "name": "NewTransmission",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "transmitter",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "payee",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "OraclePaid",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "transmitter",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "current",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "proposed",
        "type": "address"
      }
    ],
    "name": "PayeeshipTransferRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "transmitter",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "previous",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "current",
        "type": "address"
      }
    ],
    "name": "PayeeshipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "user",
        "type": "address"
      }
    ],
    "name": "RemovedAccess",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "contract AccessControllerInterface",
        "name": "old",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "contract AccessControllerInterface",
        "name": "current",
        "type": "address"
      }
    ],
    "name": "RequesterAccessControllerSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "requester",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes16",
        "name": "configDigest",
        "type": "bytes16"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "epoch",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "round",
        "type": "uint8"
      }
    ],
    "name": "RoundRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "contract AggregatorValidatorInterface",
        "name": "previousValidator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "previousGasLimit",
        "type": "uint32"
      },
      {
        "indexed": true,
        "internalType": "contract AggregatorValidatorInterface",
        "name": "currentValidator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "currentGasLimit",
        "type": "uint32"
      }
    ],
    "name": "ValidatorConfigSet",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "LINK",
    "outputs": [
      {
        "internalType": "contract LinkTokenInterface",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "acceptOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_transmitter", "type": "address" }
    ],
    "name": "acceptPayeeship",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_user", "type": "address" }
    ],
    "name": "addAccess",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "billingAccessController",
    "outputs": [
      {
        "internalType": "contract AccessControllerInterface",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "checkEnabled",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "description",
    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "disableAccessCheck",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "enableAccessCheck",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint256", "name": "_roundId", "type": "uint256" }
    ],
    "name": "getAnswer",
    "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getBilling",
    "outputs": [
      { "internalType": "uint32", "name": "maximumGasPrice", "type": "uint32" },
      {
        "internalType": "uint32",
        "name": "reasonableGasPrice",
        "type": "uint32"
      },
      { "internalType": "uint32", "name": "microLinkPerEth", "type": "uint32" },
      {
        "internalType": "uint32",
        "name": "linkGweiPerObservation",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "linkGweiPerTransmission",
        "type": "uint32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint80", "name": "_roundId", "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": "uint256", "name": "_roundId", "type": "uint256" }
    ],
    "name": "getTimestamp",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_user", "type": "address" },
      { "internalType": "bytes", "name": "_calldata", "type": "bytes" }
    ],
    "name": "hasAccess",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "latestAnswer",
    "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "latestConfigDetails",
    "outputs": [
      { "internalType": "uint32", "name": "configCount", "type": "uint32" },
      { "internalType": "uint32", "name": "blockNumber", "type": "uint32" },
      { "internalType": "bytes16", "name": "configDigest", "type": "bytes16" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "latestRound",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "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": [],
    "name": "latestTimestamp",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "latestTransmissionDetails",
    "outputs": [
      { "internalType": "bytes16", "name": "configDigest", "type": "bytes16" },
      { "internalType": "uint32", "name": "epoch", "type": "uint32" },
      { "internalType": "uint8", "name": "round", "type": "uint8" },
      { "internalType": "int192", "name": "latestAnswer", "type": "int192" },
      { "internalType": "uint64", "name": "latestTimestamp", "type": "uint64" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "linkAvailableForPayment",
    "outputs": [
      { "internalType": "int256", "name": "availableBalance", "type": "int256" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxAnswer",
    "outputs": [{ "internalType": "int192", "name": "", "type": "int192" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "minAnswer",
    "outputs": [{ "internalType": "int192", "name": "", "type": "int192" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_signerOrTransmitter",
        "type": "address"
      }
    ],
    "name": "oracleObservationCount",
    "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_transmitter", "type": "address" }
    ],
    "name": "owedPayment",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      { "internalType": "address payable", "name": "", "type": "address" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_user", "type": "address" }
    ],
    "name": "removeAccess",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "requestNewRound",
    "outputs": [{ "internalType": "uint80", "name": "", "type": "uint80" }],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "requesterAccessController",
    "outputs": [
      {
        "internalType": "contract AccessControllerInterface",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "_maximumGasPrice",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_reasonableGasPrice",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_microLinkPerEth",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_linkGweiPerObservation",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "_linkGweiPerTransmission",
        "type": "uint32"
      }
    ],
    "name": "setBilling",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract AccessControllerInterface",
        "name": "_billingAccessController",
        "type": "address"
      }
    ],
    "name": "setBillingAccessController",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address[]", "name": "_signers", "type": "address[]" },
      {
        "internalType": "address[]",
        "name": "_transmitters",
        "type": "address[]"
      },
      { "internalType": "uint8", "name": "_threshold", "type": "uint8" },
      {
        "internalType": "uint64",
        "name": "_encodedConfigVersion",
        "type": "uint64"
      },
      { "internalType": "bytes", "name": "_encoded", "type": "bytes" }
    ],
    "name": "setConfig",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_transmitters",
        "type": "address[]"
      },
      { "internalType": "address[]", "name": "_payees", "type": "address[]" }
    ],
    "name": "setPayees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract AccessControllerInterface",
        "name": "_requesterAccessController",
        "type": "address"
      }
    ],
    "name": "setRequesterAccessController",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract AggregatorValidatorInterface",
        "name": "_newValidator",
        "type": "address"
      },
      { "internalType": "uint32", "name": "_newGasLimit", "type": "uint32" }
    ],
    "name": "setValidatorConfig",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "_to", "type": "address" }],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_transmitter", "type": "address" },
      { "internalType": "address", "name": "_proposed", "type": "address" }
    ],
    "name": "transferPayeeship",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "bytes", "name": "_report", "type": "bytes" },
      { "internalType": "bytes32[]", "name": "_rs", "type": "bytes32[]" },
      { "internalType": "bytes32[]", "name": "_ss", "type": "bytes32[]" },
      { "internalType": "bytes32", "name": "_rawVs", "type": "bytes32" }
    ],
    "name": "transmit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "transmitters",
    "outputs": [
      { "internalType": "address[]", "name": "", "type": "address[]" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "typeAndVersion",
    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "validatorConfig",
    "outputs": [
      {
        "internalType": "contract AggregatorValidatorInterface",
        "name": "validator",
        "type": "address"
      },
      { "internalType": "uint32", "name": "gasLimit", "type": "uint32" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "version",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_recipient", "type": "address" },
      { "internalType": "uint256", "name": "_amount", "type": "uint256" }
    ],
    "name": "withdrawFunds",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_transmitter", "type": "address" }
    ],
    "name": "withdrawPayment",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
