SetloDocs

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.