Scaffold node/x/verification/ per §7 Phase 1.1 layout. Implement the full state and service surface: auditor lifecycle, governance actions, attestation records, audit escrow lifecycle, anti-griefing deposits, provider/auditor bonds with unbonding queues, snapshot records + suspension queue, discrepancy records, grace records with preserved_tier, ProviderTierSummary cache, full Msg/Query handlers, typed events, and all eight time queues (attestation expiry, auditor renewal, snapshot compliance, provider/auditor unbonding, discrepancy timeout, audit escrow expiry, and grace expiry). Include on-chain prerequisite enforcement, including L4 continuous L3+ history; module error codes matching IMPLEMENTATION.md Appendix A; and CLI tx/query commands for the verification service. Build the Settle() helper first with table-driven tests covering every row of the §4.10 disposition matrix. Add validateReasonAttribution(reason, fault) and call it from every handler that accepts a typed reason. Register the named invariants from IMPLEMENTATION.md §8. See §5.1.
Depends on: L-1
DoD: Unit tests pass with >80% coverage on settlement helper; every disposition row exercised; every (reason, fault) bad-pair test asserts ErrInvalidFaultAttribution; invariants pass on synthetic genesis (100 providers, 5 auditors, mixed escrow states); InitGenesis/ExportGenesis rebuild indexes and time queues.
Scaffold
node/x/verification/per §7 Phase 1.1 layout. Implement the full state and service surface: auditor lifecycle, governance actions, attestation records, audit escrow lifecycle, anti-griefing deposits, provider/auditor bonds with unbonding queues, snapshot records + suspension queue, discrepancy records, grace records withpreserved_tier,ProviderTierSummarycache, full Msg/Query handlers, typed events, and all eight time queues (attestation expiry, auditor renewal, snapshot compliance, provider/auditor unbonding, discrepancy timeout, audit escrow expiry, and grace expiry). Include on-chain prerequisite enforcement, including L4 continuous L3+ history; module error codes matching IMPLEMENTATION.md Appendix A; and CLI tx/query commands for the verification service. Build theSettle()helper first with table-driven tests covering every row of the §4.10 disposition matrix. AddvalidateReasonAttribution(reason, fault)and call it from every handler that accepts a typed reason. Register the named invariants from IMPLEMENTATION.md §8. See §5.1.Depends on: L-1
DoD: Unit tests pass with >80% coverage on settlement helper; every disposition row exercised; every
(reason, fault)bad-pair test assertsErrInvalidFaultAttribution; invariants pass on synthetic genesis (100 providers, 5 auditors, mixed escrow states); InitGenesis/ExportGenesis rebuild indexes and time queues.