mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-11-12 00:47:50 +00:00
Anyone holding a real but uncreditable App Store subscription JWS, such as their own lapsed subscription, could present it again and again, each time spending an App Store Server API call from the quota every subscriber's renewal check needs. The purchase path now remembers, in memory, which subscription claims it asked about within the hour and answers a repeat payment_pending with the time left. Keys are original transaction ids from JWS that verified offline, entries expire after the hour, and a full table asks rather than refuses, so memory stays bounded and no buyer waits on another's claim. Run: 005-subscriptions-load-timing, slice 4