{
  "_format": "hh-sol-artifact-1",
  "contractName": "IMarketEntry",
  "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": "userAddr",
          "type": "bytes26"
        },
        {
          "components": [
            {
              "internalType": "OrderId[]",
              "name": "ids",
              "type": "uint64[]"
            },
            {
              "internalType": "bool",
              "name": "isAll",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isStrict",
              "type": "bool"
            }
          ],
          "internalType": "struct CancelData",
          "name": "cancelData",
          "type": "tuple"
        },
        {
          "internalType": "bool",
          "name": "isForceCancel",
          "type": "bool"
        }
      ],
      "name": "cancel",
      "outputs": [
        {
          "internalType": "PayFee",
          "name": "settle",
          "type": "uint256"
        },
        {
          "internalType": "OrderId[]",
          "name": "removedIds",
          "type": "uint64[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "descriptor",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isIsolatedOnly",
          "type": "bool"
        },
        {
          "internalType": "TokenId",
          "name": "tokenId",
          "type": "uint16"
        },
        {
          "internalType": "MarketId",
          "name": "marketId",
          "type": "uint24"
        },
        {
          "internalType": "uint32",
          "name": "maturity",
          "type": "uint32"
        },
        {
          "internalType": "uint8",
          "name": "tickStep",
          "type": "uint8"
        },
        {
          "internalType": "uint16",
          "name": "iTickThresh",
          "type": "uint16"
        },
        {
          "internalType": "uint32",
          "name": "latestFTime",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "internalType": "MarketAcc",
          "name": "otcCounter",
          "type": "bytes26"
        }
      ],
      "name": "getBestFeeRates",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "takerFee",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "otcFee",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        }
      ],
      "name": "getDelevLiqNonce",
      "outputs": [
        {
          "internalType": "uint24",
          "name": "",
          "type": "uint24"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getImpliedRate",
      "outputs": [
        {
          "internalType": "int128",
          "name": "lastTradedRate",
          "type": "int128"
        },
        {
          "internalType": "int128",
          "name": "oracleRate",
          "type": "int128"
        },
        {
          "internalType": "uint32",
          "name": "lastTradedTime",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "observationWindow",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLatestFIndex",
      "outputs": [
        {
          "internalType": "FIndex",
          "name": "",
          "type": "bytes26"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLatestFTime",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMarkRate",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum Side",
          "name": "side",
          "type": "uint8"
        },
        {
          "internalType": "int16",
          "name": "limitTick",
          "type": "int16"
        },
        {
          "internalType": "uint256",
          "name": "maxNTicks",
          "type": "uint256"
        }
      ],
      "name": "getNextNTicks",
      "outputs": [
        {
          "internalType": "int16[]",
          "name": "ticks",
          "type": "int16[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tickSizes",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "liqAddr",
          "type": "bytes26"
        },
        {
          "internalType": "MarketAcc",
          "name": "vioAddr",
          "type": "bytes26"
        },
        {
          "internalType": "int256",
          "name": "sizeToLiq",
          "type": "int256"
        },
        {
          "internalType": "int256",
          "name": "vioHealthRatio",
          "type": "int256"
        },
        {
          "internalType": "int256",
          "name": "critHR",
          "type": "int256"
        }
      ],
      "name": "liquidate",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "isStrictIMLiq",
              "type": "bool"
            },
            {
              "internalType": "VMResult",
              "name": "finalVMLiq",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "liqSettle",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "liqPayment",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "vioSettle",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "vioPayment",
              "type": "uint256"
            },
            {
              "internalType": "Trade",
              "name": "liqTrade",
              "type": "uint256"
            }
          ],
          "internalType": "struct LiqResult",
          "name": "res",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "internalType": "enum GetRequest",
          "name": "getType",
          "type": "uint8"
        }
      ],
      "name": "settleAndGet",
      "outputs": [
        {
          "internalType": "VMResult",
          "name": "res",
          "type": "uint256"
        },
        {
          "internalType": "PayFee",
          "name": "payFee",
          "type": "uint256"
        },
        {
          "internalType": "int256",
          "name": "signedSize",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "nOrders",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
