Proof
Tests and live runs
How the rules are checked.
Automated
- Contract: 43 Foundry unit and fuzz tests plus 2 invariant tests (funds always cover what is owed). CI runs forge fmt, build and test on every PR.
- App: Vitest unit tests for amounts, relay argument handling and webhook parsing; CI runs lint, typecheck, tests and a production build.
Live, on both test networks
- contracts/script/E2E.s.sol: a funded, accepted, confirmed and released package, and a declined package that expires with a refund minus the earned hold.
- app/scripts/relay-smoke.mjs: a full booking through the relayer API with automatic payouts.
- Both use sub-dollar amounts and sweep test payouts back afterwards.