[
  {
    "type": "function",
    "name": "acceptOwnership",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "bundleDecimals",
    "inputs": [],
    "outputs": [
      {
        "name": "bundleFeedDecimals",
        "type": "uint8[]",
        "internalType": "uint8[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "checkFeedPermission",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      },
      {
        "name": "workflowMetadata",
        "type": "tuple",
        "internalType": "struct DataFeedsCache.WorkflowMetadata",
        "components": [
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowOwner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowName",
            "type": "bytes10",
            "internalType": "bytes10"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "hasPermission",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "decimals",
    "inputs": [],
    "outputs": [
      {
        "name": "feedDecimals",
        "type": "uint8",
        "internalType": "uint8"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "description",
    "inputs": [],
    "outputs": [
      {
        "name": "feedDescription",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getAnswer",
    "inputs": [
      {
        "name": "roundId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "answer",
        "type": "int256",
        "internalType": "int256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getBundleDecimals",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "bundleFeedDecimals",
        "type": "uint8[]",
        "internalType": "uint8[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getDataIdForProxy",
    "inputs": [
      {
        "name": "proxy",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getDecimals",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "feedDecimals",
        "type": "uint8",
        "internalType": "uint8"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "getDescription",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "feedDescription",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getFeedMetadata",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      },
      {
        "name": "startIndex",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "maxCount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "workflowMetadata",
        "type": "tuple[]",
        "internalType": "struct DataFeedsCache.WorkflowMetadata[]",
        "components": [
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowOwner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowName",
            "type": "bytes10",
            "internalType": "bytes10"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getLatestAnswer",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "answer",
        "type": "int256",
        "internalType": "int256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getLatestBundle",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "bundle",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getLatestBundleTimestamp",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "timestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getLatestRoundData",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "id",
        "type": "uint80",
        "internalType": "uint80"
      },
      {
        "name": "answer",
        "type": "int256",
        "internalType": "int256"
      },
      {
        "name": "startedAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "updatedAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "answeredInRound",
        "type": "uint80",
        "internalType": "uint80"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getLatestTimestamp",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ],
    "outputs": [
      {
        "name": "timestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getRoundData",
    "inputs": [
      {
        "name": "roundId",
        "type": "uint80",
        "internalType": "uint80"
      }
    ],
    "outputs": [
      {
        "name": "id",
        "type": "uint80",
        "internalType": "uint80"
      },
      {
        "name": "answer",
        "type": "int256",
        "internalType": "int256"
      },
      {
        "name": "startedAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "updatedAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "answeredInRound",
        "type": "uint80",
        "internalType": "uint80"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getTimestamp",
    "inputs": [
      {
        "name": "roundId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "timestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isFeedAdmin",
    "inputs": [
      {
        "name": "feedAdmin",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "latestAnswer",
    "inputs": [],
    "outputs": [
      {
        "name": "answer",
        "type": "int256",
        "internalType": "int256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "latestBundle",
    "inputs": [],
    "outputs": [
      {
        "name": "bundle",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "latestBundleTimestamp",
    "inputs": [],
    "outputs": [
      {
        "name": "timestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "latestRound",
    "inputs": [],
    "outputs": [
      {
        "name": "round",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "latestRoundData",
    "inputs": [],
    "outputs": [
      {
        "name": "id",
        "type": "uint80",
        "internalType": "uint80"
      },
      {
        "name": "answer",
        "type": "int256",
        "internalType": "int256"
      },
      {
        "name": "startedAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "updatedAt",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "answeredInRound",
        "type": "uint80",
        "internalType": "uint80"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "latestTimestamp",
    "inputs": [],
    "outputs": [
      {
        "name": "timestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "onReport",
    "inputs": [
      {
        "name": "metadata",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "report",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "recoverTokens",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "internalType": "contract IERC20"
      },
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "removeDataIdMappingsForProxies",
    "inputs": [
      {
        "name": "proxies",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "removeFeedConfigs",
    "inputs": [
      {
        "name": "dataIds",
        "type": "bytes16[]",
        "internalType": "bytes16[]"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setBundleFeedConfigs",
    "inputs": [
      {
        "name": "dataIds",
        "type": "bytes16[]",
        "internalType": "bytes16[]"
      },
      {
        "name": "descriptions",
        "type": "string[]",
        "internalType": "string[]"
      },
      {
        "name": "decimalsMatrix",
        "type": "uint8[][]",
        "internalType": "uint8[][]"
      },
      {
        "name": "workflowMetadata",
        "type": "tuple[]",
        "internalType": "struct DataFeedsCache.WorkflowMetadata[]",
        "components": [
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowOwner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowName",
            "type": "bytes10",
            "internalType": "bytes10"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setDecimalFeedConfigs",
    "inputs": [
      {
        "name": "dataIds",
        "type": "bytes16[]",
        "internalType": "bytes16[]"
      },
      {
        "name": "descriptions",
        "type": "string[]",
        "internalType": "string[]"
      },
      {
        "name": "workflowMetadata",
        "type": "tuple[]",
        "internalType": "struct DataFeedsCache.WorkflowMetadata[]",
        "components": [
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowOwner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowName",
            "type": "bytes10",
            "internalType": "bytes10"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setFeedAdmin",
    "inputs": [
      {
        "name": "feedAdmin",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "isAdmin",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "supportsInterface",
    "inputs": [
      {
        "name": "interfaceId",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "typeAndVersion",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "updateDataIdMappingsForProxies",
    "inputs": [
      {
        "name": "proxies",
        "type": "address[]",
        "internalType": "address[]"
      },
      {
        "name": "dataIds",
        "type": "bytes16[]",
        "internalType": "bytes16[]"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "version",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "event",
    "name": "AnswerUpdated",
    "inputs": [
      {
        "name": "current",
        "type": "int256",
        "indexed": true,
        "internalType": "int256"
      },
      {
        "name": "roundId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "updatedAt",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "BundleFeedConfigSet",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "decimals",
        "type": "uint8[]",
        "indexed": false,
        "internalType": "uint8[]"
      },
      {
        "name": "description",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "workflowMetadata",
        "type": "tuple[]",
        "indexed": false,
        "internalType": "struct DataFeedsCache.WorkflowMetadata[]",
        "components": [
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowOwner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowName",
            "type": "bytes10",
            "internalType": "bytes10"
          }
        ]
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "BundleReportUpdated",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "timestamp",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "bundle",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DecimalFeedConfigSet",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "decimals",
        "type": "uint8",
        "indexed": false,
        "internalType": "uint8"
      },
      {
        "name": "description",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "workflowMetadata",
        "type": "tuple[]",
        "indexed": false,
        "internalType": "struct DataFeedsCache.WorkflowMetadata[]",
        "components": [
          {
            "name": "allowedSender",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowOwner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allowedWorkflowName",
            "type": "bytes10",
            "internalType": "bytes10"
          }
        ]
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DecimalReportUpdated",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "roundId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "timestamp",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "answer",
        "type": "uint224",
        "indexed": false,
        "internalType": "uint224"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "FeedAdminSet",
    "inputs": [
      {
        "name": "feedAdmin",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "isAdmin",
        "type": "bool",
        "indexed": true,
        "internalType": "bool"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "FeedConfigRemoved",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "InvalidUpdatePermission",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "sender",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "workflowOwner",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "workflowName",
        "type": "bytes10",
        "indexed": false,
        "internalType": "bytes10"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "NewRound",
    "inputs": [
      {
        "name": "roundId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "startedBy",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "startedAt",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferRequested",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ProxyDataIdRemoved",
    "inputs": [
      {
        "name": "proxy",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ProxyDataIdUpdated",
    "inputs": [
      {
        "name": "proxy",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "StaleBundleReport",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "reportTimestamp",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "latestTimestamp",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "StaleDecimalReport",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "indexed": true,
        "internalType": "bytes16"
      },
      {
        "name": "reportTimestamp",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "latestTimestamp",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "TokenRecovered",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "amount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "AddressEmptyCode",
    "inputs": [
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "AddressInsufficientBalance",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "ArrayLengthMismatch",
    "inputs": []
  },
  {
    "type": "error",
    "name": "EmptyConfig",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ErrorSendingNative",
    "inputs": [
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ]
  },
  {
    "type": "error",
    "name": "FailedInnerCall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "FeedNotConfigured",
    "inputs": [
      {
        "name": "dataId",
        "type": "bytes16",
        "internalType": "bytes16"
      }
    ]
  },
  {
    "type": "error",
    "name": "InsufficientBalance",
    "inputs": [
      {
        "name": "balance",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "requiredBalance",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "InvalidAddress",
    "inputs": [
      {
        "name": "addr",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "InvalidDataId",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidWorkflowName",
    "inputs": [
      {
        "name": "workflowName",
        "type": "bytes10",
        "internalType": "bytes10"
      }
    ]
  },
  {
    "type": "error",
    "name": "NoMappingForSender",
    "inputs": [
      {
        "name": "proxy",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "SafeERC20FailedOperation",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "UnauthorizedCaller",
    "inputs": [
      {
        "name": "caller",
        "type": "address",
        "internalType": "address"
      }
    ]
  }
]