[
  {
    "type": "function",
    "name": "emitEngineState",
    "inputs": [],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "emitPositionState",
    "inputs": [
      {
        "name": "positionId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "event",
    "name": "EngineStateUpdated",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "fundingLastUpdatedAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "availableLending",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalBorrowedTokens",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "unrecoveredLendingTokens",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalShortShares",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalOpenShortNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalOpenNotionalNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalNotionalBlockOrigin",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "fundingIndexX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "fundingRatePpmPerDay",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "fundingUtilizationBps",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "fundingNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "accruedProtocolNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "nextPositionId",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalPositionMarginNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "totalPendingLegacyNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "globalNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyRewardRateX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyRewardRateBlockX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "nativeLiabilities",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "PositionStateUpdated",
    "inputs": [
      {
        "name": "positionId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "open",
        "type": "bool",
        "indexed": false,
        "internalType": "bool"
      },
      {
        "name": "openedAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "collateralNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "notionalNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "borrowedTokens",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "soldNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "simulatedSoldNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "netSoldNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "marginNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "openFeeNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "shortShares",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "fundingIndexSnapshotX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "fundingPaidNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "notionalBlockOrigin",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyRewardRateSnapshotX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyRewardRateBlockSnapshotX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyClaimableNative",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "legacyClaimRemainderX128",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  }
]
