{
  "kind": "ewp-event-coverage-index",
  "version": 1,
  "contract": "0x76c17C51336BE7B39F5164802e08b9811477A14B",
  "chainId": 8453,
  "generatedAt": "2026-07-07T17:33:42.473Z",
  "events": [
    {
      "name": "OwnershipTransferred",
      "args": [
        "address indexed oldOwner",
        "address indexed newOwner"
      ]
    },
    {
      "name": "PausedSet",
      "args": [
        "bool paused"
      ]
    },
    {
      "name": "PricingRuleUpdated",
      "args": [
        "uint8 indexed workType",
        "uint256 basePrice",
        "uint256 locMult",
        "uint256 diffMult"
      ]
    },
    {
      "name": "ProofsSubmitted",
      "args": [
        "uint256 indexed workId",
        "string proofHash"
      ]
    },
    {
      "name": "QualityAttested",
      "args": [
        "uint256 indexed workId",
        "address indexed worker",
        "uint256 score"
      ]
    },
    {
      "name": "SettlementRecorded",
      "args": [
        "uint256 indexed workId",
        "string paymentTx",
        "string tokenMint"
      ]
    },
    {
      "name": "WorkApproved",
      "args": [
        "uint256 indexed workId",
        "address indexed approver"
      ]
    },
    {
      "name": "WorkCancelled",
      "args": [
        "uint256 indexed workId"
      ]
    },
    {
      "name": "WorkClaimed",
      "args": [
        "uint256 indexed workId",
        "address worker"
      ]
    },
    {
      "name": "WorkExpired",
      "args": [
        "uint256 indexed workId"
      ]
    },
    {
      "name": "WorkPosted",
      "args": [
        "uint256 indexed workId",
        "address creator",
        "uint8 workType",
        "uint256 estimatedPrice"
      ]
    },
    {
      "name": "WorkRejected",
      "args": [
        "uint256 indexed workId",
        "address indexed creator"
      ]
    },
    {
      "name": "WorkUnclaimed",
      "args": [
        "uint256 indexed workId",
        "address indexed worker"
      ]
    }
  ],
  "indexerRules": [
    "WorkPosted omits ecologicalStandard/location/expiresAt — call getWork(workId) once per posting",
    "WorkRejected arg named creator carries msg.sender (the rejector), not the posting creator",
    "cancelWork emits no actor — recover admin-vs-creator via tx.from",
    "SettlementRecorded omits tokenId — getWork(workId).tokenId fallback",
    "PricingRuleUpdated locMult/diffMult are dead fields — consume basePrice only",
    "reputation = pure fold: settlements per worker (join WorkClaimed) + QualityAttested score history"
  ]
}
