rspace-online/modules/rcart
Jeff Emmett 97a077b256 feat(rcart): Layer 3 — automated recurring payment execution via ERC-20 allowance
Recurring Executor (new module):
- Server-managed relayer keypair derived deterministically via HKDF
- Checks on-chain ERC-20 allowance before pulling funds
- Executes transferFrom when subscriptions are due
- Supports Base, Base Sepolia, and Ethereum mainnet

New API Endpoints:
- GET /api/payments/:id/subscription-info — returns relayer address and
  approve calldata for the client to authorize recurring pulls
- POST /api/payments/:id/subscribe — registers a subscription after
  payer approves on-chain allowance, verifies allowance exists

Scheduler Upgrade:
- Attempts automated pull first for subscriptions with approved allowance
- Falls back to email reminder if auto-pull fails or is not configured
- Sends branded receipt email after successful automated payments
- Extracted email templates into reusable helper functions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 21:32:13 +00:00
..
components feat(rcart): recurring payment infrastructure with interval scheduling 2026-03-12 21:22:58 +00:00
db feat: Phase 4 — remove PostgreSQL from 11 modules, switch to Automerge 2026-03-02 15:48:01 -08:00
lib feat(rcart): Layer 3 — automated recurring payment execution via ERC-20 allowance 2026-03-12 21:32:13 +00:00
extract.ts feat(rcart): merge group shopping into rCart module 2026-03-10 01:21:38 -07:00
flow.ts refactor: rename module directories to match r-prefixed module IDs 2026-02-28 19:49:26 -08:00
landing.ts feat: add ViewHistory for in-app back navigation, rename rWork to rTasks 2026-03-11 14:04:13 -07:00
local-first-client.ts feat(rcart): merge group shopping into rCart module 2026-03-10 01:21:38 -07:00
mod.ts feat(rcart): Layer 3 — automated recurring payment execution via ERC-20 allowance 2026-03-12 21:32:13 +00:00
schemas.ts feat(rcart): recurring payment infrastructure with interval scheduling 2026-03-12 21:22:58 +00:00