{
  "_format": "hh-sol-artifact-1",
  "contractName": "IMarket",
  "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": "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"
    },
    {
      "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": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "bool",
              "name": "k_isIsolatedOnly",
              "type": "bool"
            },
            {
              "internalType": "uint32",
              "name": "k_maturity",
              "type": "uint32"
            },
            {
              "internalType": "TokenId",
              "name": "k_tokenId",
              "type": "uint16"
            },
            {
              "internalType": "MarketId",
              "name": "k_marketId",
              "type": "uint24"
            },
            {
              "internalType": "uint8",
              "name": "k_tickStep",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "k_iTickThresh",
              "type": "uint16"
            }
          ],
          "internalType": "struct IMarketAllTypes.MarketImmutableDataStruct",
          "name": "initialImmData",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "maxOpenOrders",
              "type": "uint16"
            },
            {
              "internalType": "address",
              "name": "markRateOracle",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "fIndexOracle",
              "type": "address"
            },
            {
              "internalType": "uint128",
              "name": "hardOICap",
              "type": "uint128"
            },
            {
              "internalType": "uint64",
              "name": "takerFee",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "otcFee",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "internalType": "uint64",
                  "name": "base",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "slope",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "feeRate",
                  "type": "uint64"
                }
              ],
              "internalType": "struct IMarketAllTypes.LiqSettings",
              "name": "liqSettings",
              "type": "tuple"
            },
            {
              "internalType": "uint64",
              "name": "kIM",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "kMM",
              "type": "uint64"
            },
            {
              "internalType": "uint32",
              "name": "tThresh",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "maxRateDeviationFactorBase1e4",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "closingOrderBoundBase1e4",
              "type": "uint16"
            },
            {
              "internalType": "int16",
              "name": "loUpperConstBase1e4",
              "type": "int16"
            },
            {
              "internalType": "int16",
              "name": "loUpperSlopeBase1e4",
              "type": "int16"
            },
            {
              "internalType": "int16",
              "name": "loLowerConstBase1e4",
              "type": "int16"
            },
            {
              "internalType": "int16",
              "name": "loLowerSlopeBase1e4",
              "type": "int16"
            },
            {
              "internalType": "enum IMarketAllTypes.MarketStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "bool",
              "name": "useImpliedAsMarkRate",
              "type": "bool"
            }
          ],
          "internalType": "struct IMarketAllTypes.MarketConfigStruct",
          "name": "initialConfig",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "int16",
              "name": "seedTradedTick",
              "type": "int16"
            },
            {
              "internalType": "uint32",
              "name": "window",
              "type": "uint32"
            }
          ],
          "internalType": "struct MarketImpliedRateLib.InitStruct",
          "name": "impliedRateInit",
          "type": "tuple"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "userAddr",
          "type": "bytes26"
        },
        {
          "components": [
            {
              "internalType": "enum TimeInForce",
              "name": "tif",
              "type": "uint8"
            },
            {
              "internalType": "enum Side",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256[]",
              "name": "sizes",
              "type": "uint256[]"
            },
            {
              "internalType": "int16[]",
              "name": "limitTicks",
              "type": "int16[]"
            }
          ],
          "internalType": "struct LongShort",
          "name": "orders",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "OrderId[]",
              "name": "ids",
              "type": "uint64[]"
            },
            {
              "internalType": "bool",
              "name": "isAll",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "isStrict",
              "type": "bool"
            }
          ],
          "internalType": "struct CancelData",
          "name": "cancels",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "MarketAcc",
              "name": "counter",
              "type": "bytes26"
            },
            {
              "internalType": "Trade",
              "name": "trade",
              "type": "uint256"
            },
            {
              "internalType": "int256",
              "name": "cashToCounter",
              "type": "int256"
            }
          ],
          "internalType": "struct OTCTrade[]",
          "name": "OTCs",
          "type": "tuple[]"
        },
        {
          "internalType": "int256",
          "name": "critHR",
          "type": "int256"
        }
      ],
      "name": "orderAndOtc",
      "outputs": [
        {
          "components": [
            {
              "internalType": "PayFee",
              "name": "settle",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "payment",
              "type": "uint256"
            },
            {
              "internalType": "OrderId[]",
              "name": "removedIds",
              "type": "uint64[]"
            },
            {
              "internalType": "Trade",
              "name": "bookMatched",
              "type": "uint256"
            },
            {
              "internalType": "MarketAcc",
              "name": "partialMaker",
              "type": "bytes26"
            },
            {
              "internalType": "PayFee",
              "name": "partialPayFee",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "isStrictIM",
              "type": "bool"
            },
            {
              "internalType": "VMResult",
              "name": "finalVM",
              "type": "uint256"
            }
          ],
          "internalType": "struct UserResult",
          "name": "userRes",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "PayFee",
              "name": "settle",
              "type": "uint256"
            },
            {
              "internalType": "PayFee",
              "name": "payment",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "isStrictIM",
              "type": "bool"
            },
            {
              "internalType": "VMResult",
              "name": "finalVM",
              "type": "uint256"
            }
          ],
          "internalType": "struct OTCResult[]",
          "name": "otcRes",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "newTakerFee",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "newOtcFee",
          "type": "uint64"
        }
      ],
      "name": "setGlobalFeeRates",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "newHardOICap",
          "type": "uint128"
        }
      ],
      "name": "setGlobalHardOICap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "newWindow",
          "type": "uint32"
        }
      ],
      "name": "setGlobalImpliedWindow",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int16",
          "name": "loUpperConstBase1e4",
          "type": "int16"
        },
        {
          "internalType": "int16",
          "name": "loUpperSlopeBase1e4",
          "type": "int16"
        },
        {
          "internalType": "int16",
          "name": "loLowerConstBase1e4",
          "type": "int16"
        },
        {
          "internalType": "int16",
          "name": "loLowerSlopeBase1e4",
          "type": "int16"
        }
      ],
      "name": "setGlobalLimitOrderConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint64",
              "name": "base",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "slope",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "feeRate",
              "type": "uint64"
            }
          ],
          "internalType": "struct IMarketAllTypes.LiqSettings",
          "name": "newLiqSettings",
          "type": "tuple"
        }
      ],
      "name": "setGlobalLiquidationSettings",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "newKIM",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "newKMM",
          "type": "uint64"
        },
        {
          "internalType": "uint32",
          "name": "newTThresh",
          "type": "uint32"
        }
      ],
      "name": "setGlobalMarginConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "newMaxOpenOrders",
          "type": "uint16"
        }
      ],
      "name": "setGlobalMaxOpenOrders",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newMarkRateOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "newFIndexOracle",
          "type": "address"
        }
      ],
      "name": "setGlobalOracleAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "newMaxRateDeviationFactorBase1e4",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "newClosingOrderBoundBase1e4",
          "type": "uint16"
        }
      ],
      "name": "setGlobalRateBoundConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum IMarketAllTypes.MarketStatus",
          "name": "newStatus",
          "type": "uint8"
        }
      ],
      "name": "setGlobalStatus",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "internalType": "uint64",
          "name": "newTakerDisc",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "newOtcDisc",
          "type": "uint64"
        }
      ],
      "name": "setPersonalDiscRates",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "internalType": "bool",
          "name": "exemptCLOCheck",
          "type": "bool"
        }
      ],
      "name": "setPersonalExemptCLOCheck",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "MarketAcc",
          "name": "user",
          "type": "bytes26"
        },
        {
          "internalType": "uint64",
          "name": "newKIM",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "newKMM",
          "type": "uint64"
        }
      ],
      "name": "setPersonalMarginConfig",
      "outputs": [],
      "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"
    },
    {
      "inputs": [
        {
          "internalType": "FIndex",
          "name": "newIndex",
          "type": "bytes26"
        }
      ],
      "name": "updateFIndex",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
