Daml model
Contracts that make payroll authoritative
Sotto 0.2.2 moves payment authority into PayrollState. The web app prepares inputs, but the Daml choice validates live contracts before it creates any run or receipt.
Core templates
| Template | Signatory | Purpose |
|---|---|---|
PayrollState | Operator and employer | Serializes payroll and remembers completed periods. |
EmployeeProfile | Employer | Stores employee status and employer-approved monthly net pay. |
AuditGrant | Employer | Creates forward-only auditor visibility. |
PayrollRun | Employer | Records period, total, headcount, and audit scope. |
SalaryReceipt | Employer | Private pay record observed by the employee and active auditors. |
Settlement choice
Rendering diagram...
The choice consumes the current PayrollState. A stale state contract, duplicate period, invalid profile, revoked grant, duplicate recipient, empty treasury, or insufficient funds fails before the replacement state is created.