{
  "_format": "hh-sol-artifact-1",
  "contractName": "IMarketRiskManagement",
  "sourceName": "contracts/interfaces/IMarket.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "FIndex",
          "name": "newIndex",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "FTag",
          "name": "newFTag",
          "type": "uint32"
        }
      ],
      "name": "FIndexUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "FIndex",
          "name": "newIndex",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "FTag",
          "name": "newFTag",
          "type": "uint32"
        }
      ],
      "name": "FTagUpdatedOnPurge",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newTakerFee",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newOtcFee",
          "type": "uint64"
        }
      ],
      "name": "FeeRatesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "win",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "lose",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "Trade",
          "name": "delevTrade",
          "type": "uint256"
        }
      ],
      "name": "ForceDeleverage",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "newWindow",
          "type": "uint32"
        }
      ],
      "name": "ImpliedRateObservationWindowUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "OrderId[]",
          "name": "orderIds",
          "type": "uint64[]"
        }
      ],
      "name": "LimitOrderCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "int16",
          "name": "loUpperConstBase1e4",
          "type": "int16"
        },
        {
          "indexed": false,
          "internalType": "int16",
          "name": "loUpperSlopeBase1e4",
          "type": "int16"
        },
        {
          "indexed": false,
          "internalType": "int16",
          "name": "loLowerConstBase1e4",
          "type": "int16"
        },
        {
          "indexed": false,
          "internalType": "int16",
          "name": "loLowerSlopeBase1e4",
          "type": "int16"
        }
      ],
      "name": "LimitOrderConfigUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "OrderId",
          "name": "from",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "OrderId",
          "name": "to",
          "type": "uint64"
        }
      ],
      "name": "LimitOrderFilled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "OrderId[]",
          "name": "orderIds",
          "type": "uint64[]"
        }
      ],
      "name": "LimitOrderForcedCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "OrderId",
          "name": "orderId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "filledSize",
          "type": "uint256"
        }
      ],
      "name": "LimitOrderPartiallyFilled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "maker",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "OrderId[]",
          "name": "orderIds",
          "type": "uint64[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "sizes",
          "type": "uint256[]"
        }
      ],
      "name": "LimitOrderPlaced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "liq",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "vio",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "Trade",
          "name": "liqTrade",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "liqFee",
          "type": "uint256"
        }
      ],
      "name": "Liquidate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint64",
              "name": "base",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "slope",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "feeRate",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct IMarketAllTypes.LiqSettings",
          "name": "newLiqSettings",
          "type": "tuple"
        }
      ],
      "name": "LiquidationSettingsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newKIM",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newKMM",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newTThresh",
          "type": "uint64"
        }
      ],
      "name": "MarginConfigUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "Trade",
          "name": "totalTrade",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "totalFees",
          "type": "uint256"
        }
      ],
      "name": "MarketOrdersFilled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "newMaxOpenOrders",
          "type": "uint16"
        }
      ],
      "name": "MaxOpenOrdersUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "newHardOICap",
          "type": "uint128"
        }
      ],
      "name": "OICapUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "OrderId",
          "name": "from",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "OrderId",
          "name": "to",
          "type": "uint64"
        }
      ],
      "name": "OobOrdersPurged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "newMarkRateOracle",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newFIndexOracle",
          "type": "address"
        }
      ],
      "name": "OracleAddressesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "counterParty",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "Trade",
          "name": "trade",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "cashToCounter",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "otcFee",
          "type": "uint256"
        }
      ],
      "name": "OtcSwap",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "lastFTime",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "latestFTime",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "payment",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fees",
          "type": "uint256"
        }
      ],
      "name": "PaymentFromSettlement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newTakerDisc",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newOtcDisc",
          "type": "uint64"
        }
      ],
      "name": "PersonalDiscRatesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "exemptCLOCheck",
          "type": "bool"
        }
      ],
      "name": "PersonalExemptCLOCheckUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newKIM",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "newKMM",
          "type": "uint64"
        }
      ],
      "name": "PersonalMarginConfigUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "newMaxRateDeviationFactorBase1e4",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "newClosingOrderBoundBase1e4",
          "type": "uint16"
        }
      ],
      "name": "RateBoundConfigUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "enum IMarketAllTypes.MarketStatus",
          "name": "newStatus",
          "type": "uint8"
        }
      ],
      "name": "StatusUpdated",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "winAddr",
          "type": "bytes26"
        },
        {
          "internalType": "MarketAcc",
          "name": "loseAddr",
          "type": "bytes26"
        },
        {
          "internalType": "int256",
          "name": "sizeToWin",
          "type": "int256"
        },
        {
          "internalType": "int256",
          "name": "loseValue",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "alpha",
          "type": "uint256"
        }
      ],
      "name": "forceDeleverage",
      "outputs": [
        {
          "components": [
            {
              "internalType": "PayFee",
              "name": "winSettle",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "winPayment",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "loseSettle",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "losePayment",
              "type": "uint256"
            },
            {
              "internalType": "Trade",
              "name": "delevTrade",
              "type": "uint256"
            }
          ],
          "internalType": "struct DelevResult",
          "name": "res",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maxNTicksPurgeOneSide",
          "type": "uint256"
        }
      ],
      "name": "forcePurgeOobOrders",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "nTicksPurgedLong",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nTicksPurgedShort",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
