Skip to main content

FINANCIAL TRANSACTION

financial-transaction.ts

Branded Cents type, hash-chained append log, atomic writes, per-project path resolution.

Stark avatarStark

WHAT 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) ────────────────────────────
← All Patterns