#!/usr/bin/env python3
import json, sys
ALLOWED_CONTRACTS = {"continuity.receipt.v1"}
REQUIRED = {"contract", "provenance", "head", "entries"}

def validate(doc):
    if not isinstance(doc, dict): return "REFUSE_TYPE"
    if doc.get("contract") not in ALLOWED_CONTRACTS: return "REFUSE_UNKNOWN_CONTRACT"
    if not REQUIRED.issubset(doc): return "REFUSE_MISSING_FIELDS"
    if not isinstance(doc["provenance"], str) or not doc["provenance"] or doc["provenance"] == "INHERITED": return "REFUSE_PROVENANCE"
    if not isinstance(doc["entries"], list) or not doc["entries"]: return "REFUSE_ENTRIES"
    ids=[e.get("id") for e in doc["entries"]]
    if ids != list(range(1,len(ids)+1)): return "REFUSE_NONCONTIGUOUS_IDS"
    if doc["head"] != ids[-1]: return "REFUSE_HEAD_MISMATCH"
    return "PASS"

if __name__ == "__main__":
    for line in sys.stdin:
        try: result=validate(json.loads(line))
        except Exception: result="REFUSE_JSON"
        print(result)
        if result != "PASS": sys.exit(1)
