{
  "generated": "Generated. Do not edit.",
  "abi": [
    {
      "type": "function",
      "name": "create",
      "inputs": [
        {
          "name": "cfg",
          "type": "tuple",
          "internalType": "struct EquityOracleConfig",
          "components": [
            {
              "name": "stockToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "loanToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "stockFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "loanFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "sequencerFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "calendar",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "liveStaleness",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "loanStaleness",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "maxDarkDuration",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkHaircutBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "caBoundaryWindow",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "sequencerGrace",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkStartOffset",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkEndOffset",
              "type": "uint64",
              "internalType": "uint64"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "oracle",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "oracleOf",
      "inputs": [
        {
          "name": "stockToken",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "oracle",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "predict",
      "inputs": [
        {
          "name": "cfg",
          "type": "tuple",
          "internalType": "struct EquityOracleConfig",
          "components": [
            {
              "name": "stockToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "loanToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "stockFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "loanFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "sequencerFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "calendar",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "liveStaleness",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "loanStaleness",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "maxDarkDuration",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkHaircutBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "caBoundaryWindow",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "sequencerGrace",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkStartOffset",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkEndOffset",
              "type": "uint64",
              "internalType": "uint64"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "event",
      "name": "OracleCreated",
      "inputs": [
        {
          "name": "oracle",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "stockToken",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "config",
          "type": "tuple",
          "indexed": false,
          "internalType": "struct EquityOracleConfig",
          "components": [
            {
              "name": "stockToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "loanToken",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "stockFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "loanFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "sequencerFeed",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "calendar",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "liveStaleness",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "loanStaleness",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "maxDarkDuration",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkHaircutBps",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "caBoundaryWindow",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "sequencerGrace",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkStartOffset",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "darkEndOffset",
              "type": "uint64",
              "internalType": "uint64"
            }
          ]
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "AlreadyListed",
      "inputs": [
        {
          "name": "stockToken",
          "type": "address",
          "internalType": "address"
        }
      ]
    }
  ]
}
