feat(auth): prompt wallet-login users to buy YAPP right after signing in - #360
Merged
Merged
Conversation
Deploying yappr-v2 with
|
| Latest commit: |
e71fc4f
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://5fcd36ea.yappr-v2.pages.dev |
| Branch Preview URL: | https://feat-post-login-yapp-prompt.yappr-v2.pages.dev |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Deploying yappr with
|
| Latest commit: |
e71fc4f
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://87df213a.yappr.pages.dev |
| Branch Preview URL: | https://feat-post-login-yapp-prompt.yappr.pages.dev |
A wallet (key-exchange) login leaves the browser with a HIGH auth key, which can post but cannot buy YAPP — only the wallet holds the CRITICAL key the purchase needs. Until now that meant a fresh wallet user hit an insufficient-YAPP error on their first post and was bounced through a purchase flow whose default path asks them to paste a CRITICAL private key into the browser. Now, once a wallet login lands on a fully set-up account whose YAPP balance can't cover a single post, the Buy-YAPP modal opens as the login modal closes, in a new 'wallet' signing mode: the confirmation offers 'Approve in wallet' and goes straight to the dash-st: QR the same wallet can sign, skipping the paste-a-key screen entirely (also on QR back-out/timeout). Accounts still needing a username or profile go through those steps first, and a failed balance check skips the prompt rather than assuming zero. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
PastaPastaPasta
force-pushed
the
feat/post-login-yapp-prompt
branch
from
September 2, 2026 15:04
9427122 to
e71fc4f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A wallet (key-exchange) login leaves the browser with a HIGH auth key. It can post, but it cannot buy YAPP: a token purchase batch must be signed with a CRITICAL key, and only the wallet holds one. Until now a fresh wallet user's first post failed with an insufficient-YAPP error and bounced them into the Buy-YAPP modal, whose default path asks them to paste a CRITICAL private key into the browser. That is exactly what the wallet-login flow exists to avoid.
Combining the key-registration and purchase into one
dash-st:scan is not possible:IdentityUpdatemust be signed by MASTER, any batch containing a token transition collapses to CRITICAL, and each state transition carries one signature. So this PR makes the two steps back to back instead.What
intent.kind === 'ready') whose YAPP balance cannot cover a single post, the Buy-YAPP modal opens as the login modal closes.'wallet'signing mode: the confirmation screen offers Approve in wallet and goes straight to thedash-st:purchase QR from feat(token): buy YAPP via dash-st remote wallet signing #358, skipping local signing and the paste-a-key screen. Backing out of or timing out on the QR returns to the confirmation rather than the paste-key screen.loginWithKeyExchangenow resolves with the post-login intent;useBuyYappModal.opentakes an optional signing mode that resets to'local'on close. Existing callers are unchanged.Depends on
Wallet-side signing of the purchase QR is dashpay/dashwallet-ios#1109 (open), which builds against the platform
feat/parse-state-transitionbranch. Dash Evo Tool can sign it today.Validation
npm run lintclean (no warnings in touched files)npm run buildsucceeds, static export produced🤖 Generated with Claude Code