- sms.py: NumberProvider abstraction + SMSPoolProvider + routes (/sms, rent, poll, release) + admin (/admin/sms) - Reuses existing sats wallet + BTCPay deposit flow; charges per-rental against balance_sats - Code detection, lazy expiry/release, per-user session limit, per-IP rate limit - Verified end-to-end: rented Discord US +1 534 251 1825, wallet 5000->3500 sats, release refunded SMSPool to $7.45
3.4 KiB
3.4 KiB