FINANCIAL TRANSACTION
financial-transaction.ts
Branded Cents type, hash-chained append log, atomic writes, per-project path resolution.
StarkWHAT THIS PATTERN TEACHES
How to handle money safely: branded Cents type (never raw numbers), append-only transaction log with hash chaining for integrity, atomic file writes to prevent corruption, and per-project treasury path resolution (v22.0).
WHEN TO USE THIS
Any financial operation: revenue tracking, ad spend, budget management, reconciliation.
AT A GLANCE
type Cents = number & { __brand: "cents" };
function toCents(dollars: number): Cents {
return Math.round(dollars * 100) as Cents;
}FRAMEWORK IMPLEMENTATIONS
TypeScript
type Cents = number & { __brand: "cents" };
function toCents(dollars: number): Cents {
return Math.round(dollars * 100) as Cents;
}
function toDisplay(cents: Cents): string {
return `$${(cents / 100).toFixed(2)}`;
}
interface Transaction {
id: string;
amount: Cents;
type: "revenue" | "spend" | "transfer";
timestamp: string;
prevHash: string;
hash: string;
}
// ─── Project-Scoped Paths (v22.0) ────────────────────────────