brave / brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
https://brave.com
Mozilla Public License 2.0
17.74k stars 2.32k forks source link

Update Rewards states #27054

Closed Miyayes closed 1 year ago

Miyayes commented 1 year ago

Description

Update Rewards states

LaurenWags commented 1 year ago

@brave/qa-team Will fully test this on Windows and macOS, limited/regression checks on Linux.

LaurenWags commented 1 year ago

Verified with

Brave | 1.48.132 Chromium: 109.0.5414.87 (Official Build) beta (x86_64)
-- | --
Revision | 2dc18eb511c56e012081b4abc9e38c81c885f7d4-refs/branch-heads/5414@{#1241}
OS | macOS Version 12.6.2 (Build 21G320)

Notes:

(Test cases 1-18) New Rewards States - 16 PASSED, 2 FAILED w/ follow up issues logged
1. New user run through: Skip onboarding custodial connection - PASSED (follow-up issues logged) Steps: 1.1 Create new profile, close and relaunch to pull griffin seed 1.2 Enable Rewards, declare a supported region on staging like the US, and go through onboarding. Verify that onboarding slides match designs. See https://github.com/brave/brave-browser/issues/27901 for differences found between implementation and figma design doc. Example | Example | Example | Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 1.3 Do not connect to the custodian at the end of onboarding 1.4 Check if non-connected state Rewards panel & NTP Widget appear as expected Panel initially | Widget initially | Panel after visiting some sites | Widget after visiting some sites ---- | ---- | ---- | ---- panel - initial | widget - intiial | panel2 | widget2 1.5 Check brave://rewards settings page to see if it matches designs Note - see https://github.com/brave/brave-browser/issues/27619 for updated text for first paragraph, as figma does not match this. Screen Shot 2023-01-19 at 11 00 48 AM 1.6 Check brave://settings/rewards to see if it makes sense with non-connected state Screen Shot 2023-01-19 at 11 02 22 AM 1.7 Toggle Brave Private Ads ON/OFF and observe if ON/OFF state of Rewards panel corresponds Example | Example ---- | ---- Screen Shot 2023-01-19 at 11 09 07 AM | Screen Shot 2023-01-19 at 11 09 19 AM 1.8 Toggle non-connected Rewards panel ON/OFF and observe if ON/OFF state of Brave Private Ads component in brave://rewards corresponds Example | Example ---- | ---- Screen Shot 2023-01-19 at 11 10 02 AM | Screen Shot 2023-01-19 at 11 10 17 AM 1.9 Use an in-line tipping button to check the tipping banner, and ensure the tipping banner matches design spec for non-connected state users (i.e., is “locked”) Twitter (unverified) | Twitter (verified) | GitHub (unverified) | GitHub (verified) | Reddit (unverified) | Reddit (verified) ---- | ---- | ---- | ---- | ---- | ---- 1t | 2t | 3g | 4g | 5r | 6r 1.10 Navigate to a couple verified sites/channels and check the Rewards panel for count of them. (This is finicky and we have a follow-up issue to make this more reliable - see https://github.com/brave/brave-browser/issues/27907) Example | Example | Example | Example ---- | ---- | ---- | ---- panel2 | panel3 | widget2 | widget3 1.11 Connect to a custodian and verify that user is now in connected state with full Rewards experience Example | Example ---- | ---- 1 | 2 1.12 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example ---- | ---- | ---- | ---- 3 | 4 | 5 | 6 1.13 Try to trigger an Auto-Contribute Example | Example | Example | Example ---- | ---- | ---- | ---- 7 | 8 | 9 | 10 1.14 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- Screen Shot 2023-01-19 at 1 51 25 PM | Screen Shot 2023-01-19 at 1 51 34 PM 1.15 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-19 at 1 52 24 PM | Screen Shot 2023-01-19 at 1 52 39 PM | Screen Shot 2023-01-19 at 1 52 46 PM 1.16 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel looks normal. Don’t need to check anything else. Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-19 at 1 52 54 PM | Screen Shot 2023-01-19 at 1 53 01 PM | Screen Shot 2023-01-19 at 1 54 48 PM
2. New user run through: Connect to custodian during onboarding - PASSED Steps: 2.1 Create new profile, relaunch to pull griffin seed 2.2 Enable Rewards, declare a supported region on staging like the US, and go through onboarding, and connect to custodian at the end of onboarding via the last onboarding slide. (Verify that onboarding slides match designs.) Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-19 at 3 56 20 PM | Screen Shot 2023-01-19 at 3 56 27 PM | Screen Shot 2023-01-19 at 4 01 19 PM 2.3 User should now be in full connected state Example | Example ---- | ---- Screen Shot 2023-01-19 at 4 03 36 PM | Screen Shot 2023-01-19 at 4 03 45 PM 2.4 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-19 at 4 04 40 PM | Screen Shot 2023-01-19 at 4 04 50 PM | Screen Shot 2023-01-19 at 4 05 12 PM | Screen Shot 2023-01-19 at 4 05 28 PM 2.5 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-19 at 4 06 33 PM | Screen Shot 2023-01-19 at 4 06 40 PM | Screen Shot 2023-01-19 at 4 06 48 PM
3. New user run through (JP): Skip onboarding custodial connection - PASSED Steps: 3.1 Create new profile, relaunch to pull griffin seed 3.2 Enable Rewards, declare JP, and go through onboarding. Verify that onboarding slides match designs. In this case, there should NOT be a slide about Auto-Contribute since it is Japan. Example | Example | Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 3.3 Do not connect to the custodian at the end of onboarding 3.4 Check if non-connected state Rewards panel & NTP Widget appear as expected. Note, after visiting some sites, panel/widget don't display any messaging about supporting creators as in non-JP case. Per discussion via slack with Chris this is expected for now, and he has logged https://github.com/brave/brave-browser/issues/27936 to determine how to handle this. Panel | Widget ---- | ---- Screen Shot 2023-01-20 at 12 11 20 PM | Screen Shot 2023-01-20 at 12 11 28 PM 3.5 Check brave://rewards settings page to see if it matches designs Screen Shot 2023-01-20 at 12 22 42 3.6 Check brave://settings/rewards to see if it makes sense with non-connected state Screen Shot 2023-01-20 at 12 22 33 3.7 Toggle Brave Private Ads ON/OFF and observe if ON/OFF state of Rewards panel corresponds Example | Example ---- | ---- Screen Shot 2023-01-20 at 12 24 30 | Screen Shot 2023-01-20 at 12 24 55 3.8 Toggle non-connected Rewards panel ON/OFF and observe if ON/OFF state of Brave Private Ads component in brave://rewards corresponds Example | Example ---- | ---- Screen Shot 2023-01-20 at 12 25 23 | Screen Shot 2023-01-20 at 12 25 34 3.9 Use an in-line tipping button to check the tipping banner, and ensure the tipping banner matches design spec for non-connected state users (i.e., is “locked”) Twitter (unverified) | Twitter (verified) | GitHub (unverified) | GitHub (verified) | Reddit (unverified) | Reddit (verified) ---- | ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 | 6 3.10 Navigate to a couple verified sites/channels and check the Rewards panel for count of them. (This is finicky and we have a follow-up issue to make this more reliable.) - does not work in JP region, see https://github.com/brave/brave-browser/issues/27936 3.11 Connect to a custodian and verify that user is now in connected state with full Rewards experience 7 3.12 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 3.13 Go to brave://rewards page and make sure there is no Auto-Contribute section, since this is Japan. Screen Shot 2023-01-20 at 14 22 40 3.14 Go to brave://settings/rewards and make sure there is no Auto-Contribute section. Screen Shot 2023-01-20 at 14 23 11 3.15 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- 1 | 2 | 3
4. New user run through (JP): Connect to custodian during onboarding - PASSED Steps: 4.1 Create new profile, relaunch to pull griffin seed 4.2 Enable Rewards, declare JP, and go through onboarding. Verify that onboarding slides match designs. In this case, there should NOT be a slide about Auto-Contribute since it is Japan. 4.3 Connect to a custodian at the end of onboarding slides. Only bitFlyer should appear as an option. Example | Example | Example ---- | ---- | ---- 1 | 2 | 3 4.4 User should now be in the full connected state. 4.5 Check brave://rewards settings page to see if there’s Auto-Contribute. There should be no A-C since this is Japan. 4 4.6 Check brave://settings/rewards for anything odd (e.g., check for presence of A-C) 5 4.7 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 4.8 Go to brave://rewards page and make sure there is no Auto-Contribute section, since this is Japan. 6 4.9 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- 7 | 8 | 9
5. New user: Non-connected state (connect to custodian during onboarding cancellation) - PASSED Steps: 5.1 Create new profile, relaunch to pull griffin seed 5.2 Enable Rewards, declare a supported region on staging like the US, and go through onboarding, and click to connect to custodian at the end of onboarding via the last onboarding slide. (Verify that onboarding slides match designs.) Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-20 at 3 07 47 PM | Screen Shot 2023-01-20 at 3 07 57 PM | Screen Shot 2023-01-20 at 3 08 05 PM 5.3 Don’t complete connecting to custodian and cancel out 5.4 Check if user is in non-connected state Screen Shot 2023-01-20 at 3 08 41 PM
6. New user: Non-connected state (no available custodian, then custodian becomes available) - PASSED Note, slightly different than from test plan, using Charles Proxy to simulate this scenario. Pre-req: Have Charles Proxy set up to simulate a country (such as US) not being on the "allow" list for any custodian. Steps: 6.1 Create new profile, relaunch to pull griffin seed. 6.2 Enable Rewards, declare the unsupported region in your Charles Proxy rule (US in my case) and go through onboarding, and verify there is NO slide at the end of onboarding telling the user to connect to a custodian. Example | Example ---- | ---- Screen Shot 2023-01-20 at 3 31 55 PM | Screen Shot 2023-01-20 at 4 03 38 PM Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ........ [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.296067,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} ``` 6.3 Check if user is in no-custodian non-connected state (corresponds to row “Custodial services not available in your location” in Figma) Example | Example | Example ---- | ---- | ---- 1 | 2 | 3 6.4 Update the Charles Proxy rule to enable US at /parameters for a custodian 6.5 Try to trigger/wait for new /parameters to be fetched by the browser Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET .......... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.296067,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB","US"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} [2489:259:0120/164852.383253:VERBOSE1:api_parameters.cc(90)] Params timer set for 10999 s ``` 6.6 Once new /parameters fetched, check to see if user has evolved into the non-connected state with available custodians and matches spec (“Connect your account prompt” row in Figma) Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-20 at 4 40 05 PM | Screen Shot 2023-01-20 at 4 40 12 PM | Screen Shot 2023-01-20 at 4 40 21 PM | Screen Shot 2023-01-20 at 4 41 07 PM 6.7 Go and connect a custodian and check if it is successfully linked Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-20 at 4 47 19 PM | Screen Shot 2023-01-20 at 4 49 50 PM | Screen Shot 2023-01-20 at 4 50 45 PM | Screen Shot 2023-01-20 at 4 50 54 PM | Screen Shot 2023-01-20 at 4 51 28 PM | Screen Shot 2023-01-20 at 4 53 53 PM
7. New user: Non-connected state (available custodian → no custodians) - PASSED Note, slightly different than from test plan, using Charles Proxy to simulate this scenario. Pre-req: Have Charles Proxy set up to simulate a country (such as US) being on the "allow" list for custodian(s). 7.1 Create a new profile, relaunch to pull griffin seed 7.2 With Charles Proxy rule running, Enable Rewards, declare a supported region by any custodian (like US) and go through onboarding, and do not connect to custodian yet. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ....... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.296067,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB","US"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} [18415:259:0123/084251.010253:VERBOSE1:api_parameters.cc(90)] Params timer set for 11779 s ``` 7.3 Check if the user is in a normal non-connected state with available custodians. Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 7.4 Update the Charles Proxy rule to disable US at `/parameters` for all custodians. 7.5 Try to trigger/wait for new `/parameters` to be fetched by the browser Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ......... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.296067,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} ``` 7.6 Once new `/parameters` are fetched, check to see if the user has evolved into the non-connected state with no available custodians (corresponding to “Custodial services not available in your location row” in Figma). Example | Example | Example ---- | ---- | ---- 1 | 2 | 3
8. Upgrade case run through: unverified with vBAT → grandfathered-unverified state - PASSED Steps: 8.1 In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as US) 8.2 Don’t accept UGP grant (just to avoid confusion) 8.3 Send yourself some ad grant (vBAT), and claim it Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 8.4 Upgrade Brave to version with Rewards 2.5 Phase 3. 8.5 Check if you’re in the grandfathered-unverified state and that your vBAT balance is still correct. Example | Example | Example | Example ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 8.6 Send vBAT tip and make a vBAT A-C to check if it still works Tip: Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 A-C: Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 | 6 | 7 8.7 Verify/connect a custodian 8.8 Confirm your vBAT was userdrained to custodial account Logs: ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/uphold/bb00bd23-e4ef-519e-9415-4a46f7330dfa/claim > Method: POST > Content: {"signedLinkingRequest":"eyJib2R5.......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/uphold/bb00bd23-e4ef-519e-9415-4a46f7330dfa/claim > Result: Success > HTTP Code: 200 [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v2/suggestions/claim > Method: POST > Content: {"credentials":[{"publicKey":"aLVWW/utUlOuva9kpzsdb6pah6z0/ubNUWqbacGCEFo=","signature":"FALTjIS.......... [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v2/suggestions/claim > Method: POST > Content: {"credentials":[{"publicKey":"aLVWW/utUlOuva9kpzsdb6pah6z0/ubNUWqbacGCEFo=","signature":"FALTjISnUJ...... [ RESPONSE - OnRequest ] > Url: https://grant.rewards.bravesoftware.com/v2/suggestions/claim > Result: Success > HTTP Code: 200 > Body: {"drainId":"4932fa9d-d990-4022-9ff1-32e9225679e8"} [ RESPONSE - OnRequest ] > Url: https://grant.rewards.bravesoftware.com/v2/suggestions/claim > Result: Success > HTTP Code: 200 > Body: {"drainId":"ef939eba-4941-4bf1-b332-d1109956ebac"} ``` Example | Example ---- | ---- 1 | 2 8.9 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- Screen Shot 2023-01-23 at 9 43 11 AM | Screen Shot 2023-01-23 at 9 43 38 AM 8.10 Now that you’re verified/connected to a custodian, make a tip and see if it works Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- 1 | 2 | 3 | 4 | 5 | 6 8.11 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- 1 | 2 | 3 8.12 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state (not grandfathered-unverified). After this point, you don’t need to check anything else. Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 9 49 27 AM | Screen Shot 2023-01-23 at 9 49 35 AM | Screen Shot 2023-01-23 at 9 49 44 AM | Screen Shot 2023-01-23 at 9 49 51 AM | Screen Shot 2023-01-23 at 9 51 01 AM | Screen Shot 2023-01-23 at 9 51 15 AM
9. Upgrade case run through: Verified state → connected state - PASSED Steps: 9.1 In an older version of Brave, create a Rewards profile in staging in a non-JP region, and connect to a custodian. Example | Example ---- | ---- Screen Shot 2023-01-23 at 10 11 46 AM | Screen Shot 2023-01-23 at 10 11 54 AM 9.2 Upgrade your browser to a version containing Rewards 2.5 Phase 3 changes. Example | Example ---- | ---- Screen Shot 2023-01-23 at 10 13 40 AM | Screen Shot 2023-01-23 at 10 13 47 AM 9.3 Ensure that you remain in the connected state and that things are working properly (e.g., try a tip and an A-C) Tip: Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 10 15 31 AM | Screen Shot 2023-01-23 at 10 15 36 AM | Screen Shot 2023-01-23 at 10 15 47 AM | Screen Shot 2023-01-23 at 10 15 59 AM | Screen Shot 2023-01-23 at 10 16 12 AM A-C: Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 10 17 47 AM | Screen Shot 2023-01-23 at 10 25 14 AM | Screen Shot 2023-01-23 at 10 25 23 AM | Screen Shot 2023-01-23 at 10 25 30 AM | Screen Shot 2023-01-23 at 10 25 38 AM | Screen Shot 2023-01-23 at 10 25 46 AM 9.4 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- Screen Shot 2023-01-23 at 10 26 30 AM | Screen Shot 2023-01-23 at 10 26 38 AM 9.5 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 10 27 42 AM | Screen Shot 2023-01-23 at 10 27 47 AM | Screen Shot 2023-01-23 at 10 27 52 AM 9.6 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state. After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 10 28 00 AM | Screen Shot 2023-01-23 at 10 28 07 AM | Screen Shot 2023-01-23 at 10 28 18 AM | Screen Shot 2023-01-23 at 10 28 28 AM
10. Upgrade case run through: Verified state (logged out) → connected state (logged out) - PASSED Steps: 10.1 In an older version of Brave, create a Rewards profile in staging in a non-JP region, and connect to a custodian. 10.2 Go into the custodian website and expire your OAuth access token 10.3 Check that you’re now in the logged out state Example | Example ---- | ---- Screen Shot 2023-01-23 at 12 44 25 PM | Screen Shot 2023-01-23 at 12 44 36 PM 10.4 Upgrade your browser to a version containing Rewards 2.5 Phase 3 changes. 10.5 Ensure that you remain in logged out state (can also check brave://rewards-internals for confirmation) Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 12 46 42 PM | Screen Shot 2023-01-23 at 12 46 51 PM | Screen Shot 2023-01-23 at 12 47 06 PM 10.6 Check if the tipping banner is unlocked (it should be) Example | Example ---- | ---- Screen Shot 2023-01-23 at 12 47 58 PM | Screen Shot 2023-01-23 at 12 48 19 PM 10.7 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu. Example | Example ---- | ---- Screen Shot 2023-01-23 at 12 48 52 PM | Screen Shot 2023-01-23 at 12 49 01 PM 10.8 Log into your custodian again and make sure you’re properly transitioned to the connected state Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 12 50 06 PM | Screen Shot 2023-01-23 at 12 50 16 PM | Screen Shot 2023-01-23 at 12 50 35 PM 10.9 Once connected again, make a tip to see if it works. Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 12 51 33 PM | Screen Shot 2023-01-23 at 12 51 38 PM | Screen Shot 2023-01-23 at 12 51 52 PM | Screen Shot 2023-01-23 at 12 52 22 PM | Screen Shot 2023-01-23 at 12 52 30 PM | Screen Shot 2023-01-23 at 12 52 42 PM
11. Upgrade case (JP): Unverified → grandfathered-unverified - PASSED Steps: 11.1 In older version of Brave, create a Rewards profile in staging and declare JP Example | Example ---- | ---- Screen Shot 2023-01-23 at 1 43 38 PM | Screen Shot 2023-01-23 at 1 45 11 PM 11.2 Don’t accept UGP grant (just to avoid confusion) 11.3 Upgrade Brave to version with Rewards 2.5 Phase 3. 11.4 Check if you’re in the grandfathered-unverified state 11.5 A-C should not appear in brave://rewards Example | Example ---- | ---- Screen Shot 2023-01-23 at 1 46 41 PM | Screen Shot 2023-01-23 at 1 47 00 PM 11.6 A-C should not appear in brave://settings/rewards Screen Shot 2023-01-23 at 1 47 59 PM 11.7 Verify/connect a custodian (bitFlyer) Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 1 49 16 PM | Screen Shot 2023-01-23 at 1 49 25 PM | Screen Shot 2023-01-23 at 1 49 38 PM 11.8 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 1 55 18 PM | Screen Shot 2023-01-23 at 1 55 23 PM | Screen Shot 2023-01-23 at 1 55 29 PM 11.9 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state (not grandfathered-unverified). After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 1 55 38 PM | Screen Shot 2023-01-23 at 1 55 45 PM | Screen Shot 2023-01-23 at 1 55 52 PM | Screen Shot 2023-01-23 at 1 56 10 PM
12. Upgrade case (JP): Verified → Connected - PASSED Steps: 12.1 In an older version of Brave, create a Rewards profile in staging and declare JP, then verify with bitFlyer. Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 3 23 46 PM | Screen Shot 2023-01-23 at 3 24 33 PM | Screen Shot 2023-01-23 at 3 24 43 PM 12.2 Don’t accept UGP grant (just to avoid confusion) 12.3 Upgrade Brave to version with Rewards 2.5 Phase 3. 12.4 Check if you’re in the new connected state. Example | Example ---- | ---- Screen Shot 2023-01-23 at 3 26 00 PM | Screen Shot 2023-01-23 at 3 26 11 PM 12.5 A-C should not appear in brave://rewards Screen Shot 2023-01-23 at 3 26 28 PM 12.6 A-C should not appear in brave://settings/rewards Screen Shot 2023-01-23 at 3 26 39 PM 12.7 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-23 at 3 28 14 PM | Screen Shot 2023-01-23 at 3 28 19 PM | Screen Shot 2023-01-23 at 3 28 25 PM 12.8 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state. After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 3 28 57 PM | Screen Shot 2023-01-23 at 3 29 04 PM | Screen Shot 2023-01-23 at 3 29 11 PM | Screen Shot 2023-01-23 at 3 29 24 PM
13. Upgrade case: Brave Private Ads & A-C disabled remains disabled - PASSED Steps: 13.1 In an older version of Brave, create a new Rewards profile on staging and declare a non-JP region. You do not need to connect to a custodian. Example | Example ---- | ---- Screen Shot 2023-01-23 at 3 37 29 PM | Screen Shot 2023-01-23 at 3 37 41 PM 13.2 Disable Brave Private Ads. 13.3 Disable Auto-Contribute. Screen Shot 2023-01-23 at 3 37 58 PM 13.4 Upgrade to a version of Brave with Rewards 2.5 Phase 3. 13.5 Ensure that you’re in the grandfathered-unverified state. Screen Shot 2023-01-23 at 3 38 35 PM 13.6 Open tipping banner and make sure that it’s unlocked (since you’re in the grandfathered-unverified state) Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 3 39 01 PM | Screen Shot 2023-01-23 at 3 39 07 PM | Screen Shot 2023-01-23 at 3 39 23 PM | Screen Shot 2023-01-23 at 3 39 37 PM 13.7 Ensure that Brave Private Ads and Auto-Contribute are still disabled and weren’t turned on Screen Shot 2023-01-23 at 3 39 53 PM
14. General Rewards regression testing - PASSED, with follow up issue(s) Steps: 14.1 New profile and start in the non-connected state (in a non-JP region). 14.2 Go into brave://rewards page, go into settings of individual components and see if things generally seem to appear as working like they used to. - Logged https://github.com/brave/brave-browser/issues/27987, 30 day ads history is blank after viewing ads - confirmed changes made on brave://rewards are reflected on brave://settings/rewards 14.3 General regression testing of the brave://settings/rewards page and its various toggles. - confirmed changes made on brave://settings/rewards are reflected on brave://rewards (where applicable) - confirmed in-line tip buttons can be toggled off from brave://settings/rewards 14.4 Connect to a custodian Screen Shot 2023-01-23 at 5 08 08 PM 14.5 Restart Brave browser 14.6 Go into brave://rewards page, go into settings of individual components and see if things generally seem to appear as working like they used to. - Logged https://github.com/brave/brave-browser/issues/27990, "Allow contributions for videos" setting does not work any more, but is also not working on previous version, so not related to these changes - confirmed changes made on brave://rewards are reflected on brave://settings/rewards 14.7 General regression testing of the brave://settings/rewards page and its various toggles. - confirmed changes made on brave://settings/rewards are reflected on brave://rewards - confirmed in-line tip buttons can be toggled off from brave://settings/rewards 14.8 Generally keep an eye out for anything that is out of the ordinary based on past Rewards experience. 14.9 After everything works, reset Brave Rewards 14.10 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state. After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- Screen Shot 2023-01-23 at 5 08 50 PM | Screen Shot 2023-01-23 at 5 08 57 PM | Screen Shot 2023-01-23 at 5 09 08 PM | Screen Shot 2023-01-23 at 5 09 19 PM
15. Rewards payout banner status (non-connected state) - PASSED Steps: 15.1 Create new profile in staging so you’re in the new non-connected state 15.2 View couple of ads and confirm ads are cashed in with the server (verify `Successfully redeemed unblinded payment tokens` msg in logs) 15.3 Look for the last message similar to "You have X unblinded payment tokens which will be redeemed in (some hours, minutes, seconds) at (some time)" message, once this time has come, you should then see a response in the logs for "OnRedeemUnblindedPaymentTokens". If this is successful, you can proceed to next steps. Logs: ``` [2105:259:0124/082927.766583:VERBOSE1:redeem_unblinded_payment_tokens.cc(139)] OnRedeemUnblindedPaymentTokens [2105:259:0124/082927.766677:VERBOSE6:redeem_unblinded_payment_tokens.cc(141)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/payment/b5dc46cb-9d92-5481-bd3a-6c4b4ea7125a Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 15.4 Advance clock to the next month to the 2nd (or between 1st and 7th), and then relaunch the browser, to see if you see any “Payout will arrive in x days” banner”. There should NOT be any banner like this. Example | Example | Example ---- | ---- | ---- 4a | 4b | 4c 15.5 Advance your clock to the 8th or later and then relaunch the browser. 15.6 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “processing” for unverified users. 15.7 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ...... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.296067,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} ``` 15.8 Make sure no “processing” banner appears in the Rewards panel, NTP widget, or brave://rewards page. Example | Example | Example ---- | ---- | ---- 8a | 8b | 8c 15.9 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “complete” for unverified users. 15.10 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [2903:259:0208/085341.441117:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.261167,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 15.11 Make sure no “complete” banner appears in the Rewards panel, NTP widget, or brave://rewards page. Example | Example | Example ---- | ---- | ---- 11a | 11b | 11c 15.12 Bring your clock back to the current month to 9th or later, and then relaunch the browser, and make sure you also don’t see anything then either. Example | Example | Example ---- | ---- | ---- 12a | 12b | 12c
16. Grandfathered-unverified payout banner status - FAILED, follow up issue logged Follow up issue logged: https://github.com/brave/brave-browser/issues/28001 Steps: 16.1 Create rewards profile on older version of Brave and view some ads. Then update to 1.48.x so that you’re in the grandfathered-unverified state. Logs: ``` [3373:259:0124/091631.833129:VERBOSE1:redeem_unblinded_payment_tokens.cc(138)] OnRedeemUnblindedPaymentTokens [3373:259:0124/091631.833224:VERBOSE6:redeem_unblinded_payment_tokens.cc(140)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v2/confirmation/payment/f7f05c8a-b24c-58ec-bf8f-457ac75b6578 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 16.2 View couple of ads and confirm ads are cashed in with the server (verify `Successfully redeemed unblinded payment tokens` msg in logs) 16.3 Look for the last message similar to "You have X unblinded payment tokens which will be redeemed in (some hours, minutes, seconds) at (some time)" message, once this time has come, you should then see a response in the logs for "OnRedeemUnblindedPaymentTokens". If this is successful, you can proceed to next steps. Logs: ``` [3515:259:0124/092259.269428:VERBOSE1:redeem_unblinded_payment_tokens.cc(139)] OnRedeemUnblindedPaymentTokens [3515:259:0124/092259.269521:VERBOSE6:redeem_unblinded_payment_tokens.cc(141)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/payment/f7f05c8a-b24c-58ec-bf8f-457ac75b6578 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 16.4 Advance clock to the next month to the 2nd (or between 1st and 7th), and then relaunch the browser, to see if you see any “Payout will arrive in x days” banner”. You SHOULD SEE this banner. Example | Example | Example ---- | ---- | ---- 4a | 4b | 4c 16.5 Advance your clock to the 8th or later and then relaunch the browser. 16.6 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “processing” for unverified users. 16.7 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ...... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.261167,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 16.8 Make sure the “processing” banner APPEARS in the Rewards panel, NTP widget, and brave://rewards page. - FAILED, banner does not appear as expected: Example | Example | Example ---- | ---- | ---- 8a | 8b | 8c 16.9 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “complete” for unverified users. 16.10 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [3896:259:0208/093501.525166:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.260985,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 16.11 Make sure the “complete” banner APPEARS in the Rewards panel, NTP widget, or brave://rewards page. - FAILED, does not show as expected: Example | Example | Example ---- | ---- | ---- 11a | 11b | 11c 16.12 Bring your clock back to the current month to 9th or later, and then relaunch the browser, and make sure you don’t see the banners (because it’s the wrong month) Example | Example | Example ---- | ---- | ---- 12a | 12b | 12c
17. Connected state payout banner status - FAILED, follow up issue logged Steps: 17.1 Create a new Rewards profile then connect to a custodian (Uphold) 17.2 View couple of ads and confirm ads are cashed in with the server (verify `Successfully redeemed unblinded payment tokens` msg in logs) 17.3 Look for the last message similar to "You have X unblinded payment tokens which will be redeemed in (some hours, minutes, seconds) at (some time)" message, once this time has come, you should then see a response in the logs for "OnRedeemUnblindedPaymentTokens". If this is successful, you can proceed to next steps after closing the browser. 3 Logs: ``` [4687:259:0124/101421.320639:VERBOSE1:redeem_unblinded_payment_tokens.cc(139)] OnRedeemUnblindedPaymentTokens [4687:259:0124/101421.320744:VERBOSE6:redeem_unblinded_payment_tokens.cc(141)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/payment/9e1fb591-488f-513c-9db7-c9d0d3cd41d4 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 17.4 Advance clock to the next month to the 2nd (or between 1st and 7th), and then relaunch the browser, to see if you see any “Payout will arrive in x days” banner”. You SHOULD SEE this banner. Close browser. Example | Example | Example ---- | ---- | ---- 4a | 4b | 4c 17.5 Advance your clock to the 8th or later and then relaunch the browser. 17.6 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “processing” for Uphold users/payout status. 17.7 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [4991:259:0208/101914.132505:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.261167,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"processing"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 17.8 Make sure the “processing” banner APPEARS in the Rewards panel, NTP widget, and brave://rewards page. - FAILED, appears on panel and rewards page, but not NTP widget. Logged follow up issue https://github.com/brave/brave-browser/issues/28006. Example | Example | Example ---- | ---- | ---- 8a | 8b | 8c 17.9 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “complete” for Uphold users/payout status. 17.10 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [5119:259:0208/102136.827925:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.26234,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 17.11 Make sure the “complete” banner APPEARS in the Rewards panel, NTP widget, or brave://rewards page. - FAILED, appears on panel and rewards page, but not NTP widget. Logged follow up issue https://github.com/brave/brave-browser/issues/28006. Example | Example | Example ---- | ---- | ---- 11a | 11b | 11c 17.12 Bring your clock back to the current month to 9th or later, and then relaunch the browser, and make sure you don’t see the banners (because it’s the wrong month) Example | Example | Example ---- | ---- | ---- 12a | 12b | 12c
18. Connected state payout banner but no earnings - PASSED Steps: 18.1 Clean profile 1.48.x and connect to custodian 18.2 View couple of ads but make sure to confirm ads are NOT cashed in with the server (should be no verify `Successfully redeemed unblinded payment tokens` msg in logs) - Did this by using Charles Proxy to simulate failed payment token fetch. Screen Shot 2023-01-24 at 11 11 54 AM Logs (just a few to show how the failure worked): ``` [6035:259:0124/111017.933120:VERBOSE1:redeem_unblinded_token.cc(136)] OnFetchPaymentToken [6035:259:0124/111017.933211:VERBOSE6:redeem_unblinded_token.cc(138)] URL Response: URL: https://anonymous.ads.bravesoftware.com/v3/confirmation/f270f275-cc77-4b86-87ab-d72329c3ad80/paymentToken Response Status Code: 500 Response: {} ..... [6035:259:0124/111017.933409:VERBOSE1:redeem_unblinded_token.cc(167)] Failed to fetch payment token [6035:259:0124/111017.933475:VERBOSE1:redeem_unblinded_token.cc(382)] Failed to redeem unblinded token view confirmation for ad_notification with transaction id f270f275-cc77-4b86-87ab-d72329c3ad80 and creative instance id 40f9f892-2eee-4b8f-8bde-45915ae2fd88 [6035:259:0124/111017.933535:VERBOSE9:confirmation_state_manager.cc(359)] Saving confirmations state [6035:259:0124/111017.933665:VERBOSE1:confirmations.cc(42)] Added view confirmation for ad_notification with transaction id f270f275-cc77-4b86-87ab-d72329c3ad80 and creative instance id 40f9f892-2eee-4b8f-8bde-45915ae2fd88 to the confirmations queue [6035:259:0124/111017.934550:VERBOSE1:refill_unblinded_tokens.cc(99)] No need to refill unblinded tokens as we already have 49 unblinded tokens which is above the minimum threshold of 20 [6035:259:0124/111017.935315:VERBOSE1:confirmations.cc(135)] Retry sending failed confirmations in 0 hours, 0 minutes, 3 seconds at 11:10:20.934 ...... [6035:259:0124/111021.038943:VERBOSE1:redeem_unblinded_token.cc(136)] OnFetchPaymentToken [6035:259:0124/111021.039034:VERBOSE6:redeem_unblinded_token.cc(138)] URL Response: URL: https://anonymous.ads.bravesoftware.com/v3/confirmation/f270f275-cc77-4b86-87ab-d72329c3ad80/paymentToken Response Status Code: 500 Response: {} ...... [6035:259:0124/111021.039108:VERBOSE1:redeem_unblinded_token.cc(167)] Failed to fetch payment token [6035:259:0124/111021.039129:VERBOSE1:redeem_unblinded_token.cc(382)] Failed to redeem unblinded token view confirmation for ad_notification with transaction id f270f275-cc77-4b86-87ab-d72329c3ad80 and creative instance id 40f9f892-2eee-4b8f-8bde-45915ae2fd88 [6035:259:0124/111021.039202:VERBOSE9:confirmation_state_manager.cc(359)] Saving confirmations state [6035:259:0124/111021.039307:VERBOSE1:confirmations.cc(42)] Added view confirmation for ad_notification with transaction id f270f275-cc77-4b86-87ab-d72329c3ad80 and creative instance id 40f9f892-2eee-4b8f-8bde-45915ae2fd88 to the confirmations queue [6035:259:0124/111021.040023:VERBOSE1:refill_unblinded_tokens.cc(99)] No need to refill unblinded tokens as we already have 49 unblinded tokens which is above the minimum threshold of 20 [6035:259:0124/111021.040604:VERBOSE1:confirmations.cc(135)] Retry sending failed confirmations in 0 hours, 1 minute, 3 seconds at 11:11:24.039 .... etc ``` 18.3 Set the API payout status to "Complete" through Charles or ask server team Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ........ [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.264416,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 18.4 Advance the system clock to the next month (sometime 1st to 7th) and relaunch the browser. 18.5 Countdown banner should NOT show. Example | Example | Example ---- | ---- | ---- 5a | 5b | 5c 18.6 Move clock to 8th or later (only change the day, not the month – keep month as the one set in step 18.4) and relaunch the browser. Payout arrived (“complete”) message should NOT be shown to the user. Example | Example | Example ---- | ---- | ---- 6a | 6b | 6c
Brave | 1.48.139 Chromium: 109.0.5414.87 (Official Build) beta (x86_64)
-- | --
Revision | 2dc18eb511c56e012081b4abc9e38c81c885f7d4-refs/branch-heads/5414@{#1241}
OS | macOS Version 12.6.3 (Build 21G419
(Test cases 19-21) Back End Changes - PASSED/TBD (see applicable note)
19. confirmation token transition - TBD, see note These tests will be completed by @btlechowski
20. removes the ability to disconnect wallet - PASSED This was verified in various test cases from 1-18 with New Rewards States. Some example steps are: 1.14 Example | Example ---- | ---- Screen Shot 2023-01-19 at 1 51 25 PM | Screen Shot 2023-01-19 at 1 51 34 PM 2.5 Example | Example | Example ---- | ---- | ---- Screen Shot 2023-01-19 at 4 06 33 PM | Screen Shot 2023-01-19 at 4 06 40 PM | Screen Shot 2023-01-19 at 4 06 48 PM 3.15 Example | Example | Example ---- | ---- | ---- 1 | 2 | 3 4.9 Example | Example | Example ---- | ---- | ---- 7 | 8 | 9
21. Wallet State Transitions - PASSED Verifying the following 3 Rewards state transitions: - Being not-connected → Being connected a custodian (i.e., kNotConnected ==> kConnected) - Being connected → Having an expired access token so that you’re in the “Logged out” state (i.e., kConnected ==> kLoggedOut) - Being in logged out state → Logging in again to be in the connected state (i.e., kLoggedOut ==> kConnected)
Uphold - PASSED 1. Join Rewards (declare geo to be US) 2. make sure: - ==> kNotConnected (uphold) appears in brave://rewards-internals / Event logs (by default we create an Uphold wallet in Preferences) - Rewards state: Not connected appears in brave://rewards-internals / General info Example | Example ---- | ---- 2a | 2b 3. connect to a US Uphold account 4. make sure: - kNotConnected ==> kConnected (uphold) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 4a | 4b 5. go to your Uphold account and expire the access token (i.e. remove the Brave Browser integration) 6. make sure: - kConnected ==> kLoggedOut (uphold) appears in brave://rewards-internals / Event logs - Rewards state: Disconnected (Verified) appears in brave://rewards-internals / General info Example | Example ---- | ---- 6a | 6b 7. reconnect to your Uphold account 8. make sure: - kLoggedOut ==> kConnected (uphold) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 8a | 8b 9. change the Uphold GET /v0/me endpoint’s response with Charles proxy, so that currencies does not contain BAT 10. wait ~15 minutes for toast notification to appear 10 11. make sure: - kConnected ==> kLoggedOut (uphold) appears in brave://rewards-internals / Event logs - Rewards state: Disconnected (Verified) appears in brave://rewards-internals / General info Example | Example ---- | ---- 11a | 11b 12. Remove Charles Proxy rewrite rule and reconnect to your Uphold account 13. make sure: - kNotConnected ==> kConnected (uphold) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 13a | 13b 14. change the GET /v0/me/capabilities endpoint’s response with Charles proxy, so that "enabled": false for either "key": "receives", or "key": "sends" (or both). Here's the snippet I modified (note, this is _not_ the entire snippet, just the part I changed. The _whole_ body must be in your Charles Proxy rewrite): ``` { "category": "permissions", "enabled": false, "key": "receives", "name": "Receives", "requirements": [], "restrictions": [] }, ``` 15. wait ~15 minutes for the toast notification to appear: Screen Shot 2023-01-24 at 1 32 22 PM 16. make sure: - kConnected ==> kLoggedOut (uphold) appears in brave://rewards-internals / Event logs - Rewards state: Disconnected (Verified) appears in brave://rewards-internals / General info Example | Example ---- | ---- Screen Shot 2023-01-24 at 1 33 03 PM | Screen Shot 2023-01-24 at 1 33 18 PM
Gemini - PASSED 1. Join Rewards (declare geo to be US) 2. make sure: - ==> kNotConnected (uphold) appears in brave://rewards-internals / Event logs (by default we create an Uphold wallet in Preferences) - Rewards state: Not connected appears in brave://rewards-internals / General info Example | Example ---- | ---- 2 | 2b 3. connect to a US Gemini account 4. make sure: - kNotConnected ==> kConnected (gemini) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 4 | 4b 5. go to your Gemini account and expire the access token (i.e. remove the Brave Browser integration) 6. make sure: - kConnected ==> kLoggedOut (gemini) appears in brave://rewards-internals / Event logs - Rewards state: Disconnected (Verified) appears in brave://rewards-internals / General info Example | Example ---- | ---- 6 | 6b 7. reconnect to your Gemini account 8. make sure: - kLoggedOut ==> kConnected (gemini) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 8 | 8b
bitFlyer - PASSED 1. Join Rewards (declare geo to be Japan) 2. make sure: - ==> kNotConnected (bitflyer) appears in brave://rewards-internals / Event logs - Rewards state: Not connected appears in brave://rewards-internals / General info Example | Example ---- | ---- 2a | 2b 3. connect to a JP bitFlyer account (note time) 4. make sure: - kNotConnected ==> kConnected (bitflyer) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 4a | 4b 5. Wait at least 7 minutes since step 3, then attempt to tip a bitFlyer verified creator 6. make sure: - kConnected ==> kLoggedOut (bitflyer) appears in brave://rewards-internals / Event logs - Rewards state: Disconnected (Verified) appears in brave://rewards-internals / General info Example | Example ---- | ---- 6a | 6b 7. reconnect to your bitFlyer account 8. make sure: - kLoggedOut ==> kConnected (bitflyer) appears in brave://rewards-internals / Event logs - Rewards state: Verified appears in brave://rewards-internals / General info Example | Example ---- | ---- 8a | 8b
Other testing completed, but upon further discussion not needed Note, per discussion in Rewards Client call on Jan 25, the QA test plan doc was modified so while the below testing was completed, further checks in this area are not required.
ConnectExternalWallet flow (aka linking) error conditions - InProgress
Gemini - PASSED
device limit reached: HTTP 409 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for HTTP code only is sufficient) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/52f3e122-f657-536b-90bb-62b5e1472509/claim > Method: POST > Content: {"linking_info":"eyJ0eX......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/52f3e122-f657-536b-90bb-62b5e1472509/claim > Result: Failure > HTTP Code: 409 ``` Screen Shot 2023-01-24 at 2 24 44 PM
flagged wallet: HTTP 400 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/52f3e122-f657-536b-90bb-62b5e1472509/claim > Method: POST > Content: {"linking_info":"eyJ0eX...... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/52f3e122-f657-536b-90bb-62b5e1472509/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"error linking wallet: unable to link - unusual activity: unusual activity"} ``` Screen Shot 2023-01-24 at 2 27 31 PM
KYC required: HTTP 404 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for HTTP code only is sufficient) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/52f3e122-f657-536b-90bb-62b5e1472509/claim > Method: POST > Content: {"linking_info":"eyJ0eX.......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/52f3e122-f657-536b-90bb-62b5e1472509/claim > Result: Failure > HTTP Code: 404 ``` Screen Shot 2023-01-24 at 2 30 04 PM
mismatched provider account regions: HTTP 400 - PASSED pre-req: Option 1 - Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint --OR-- Option 2 - run steps without Charles I tested both of these below, but it's not necessary - one or the other will suffice. Option 1: 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Method: POST > Content: {"linking_info":"eyJ0eX....... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"error linking wallet: mismatched provider account regions: geo reset is different"} ``` Screen Shot 2023-01-24 at 2 52 52 PM -------- Option 2: 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, choose a country that does not match your Gemini account (I have a US account, so chose Canada as my country) 4. Link KYC'd US Gemini account 5. Confirm expected error modal is shown ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/8de38f4d-d591-50b3-944d-9425c2085b3c/claim > Method: POST > Content: {"linking_info":"eyJ0eX............. [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/8de38f4d-d591-50b3-944d-9425c2085b3c/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"error linking wallet: mismatched provider account regions: geo reset is different"} ``` Screen Shot 2023-01-24 at 2 52 52 PM
mismatched provider accounts: HTTP 403 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Method: POST > Content: {"linking_info":"eyJ0eX........ [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Result: Failure > HTTP Code: 403 > Body: {"code":403,"message":"error linking wallet: unable to link gemini wallets: mismatched provider accounts: wallets do not match"} ``` Screen Shot 2023-01-24 at 3 04 43 PM
provider unavailable - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Method: POST > Content: {"linking_info":"eyJ0eX....... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Result: Failure > HTTP Code: 400 > Body: {"message":"Error validating Connecting Brave Rewards to Gemini is temporarily unavailable. Please try again later"} ``` Screen Shot 2023-01-24 at 3 10 55 PM
region not supported: HTTP 400 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Method: POST > Content: {"linking_info":"eyJ0eX.......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"region not supported: failed to validate account: invalid country"} ``` Screen Shot 2023-01-24 at 3 14 56 PM
request signature verification failure: HTTP 403 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Method: POST > Content: {"linking_info":"eyJ0eX............ [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/gemini/4277daad-fdfd-5b31-82c3-5b4cf22fef93/claim > Result: Failure > HTTP Code: 403 ``` Screen Shot 2023-01-24 at 3 19 16 PM
bitFlyer - PASSED
device limit reached: HTTP 409 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for HTTP code only is sufficient) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG............. [10535:259:0124/153958.643703:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 409 ``` Screen Shot 2023-01-24 at 3 40 05 PM
flagged wallet: HTTP 400 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG........... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"error linking wallet: unable to link - unusual activity: unusual activity"} ``` Screen Shot 2023-01-24 at 3 42 54 PM
KYC required: HTTP 404 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for HTTP code only is sufficient) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG........... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 404 ``` Screen Shot 2023-01-24 at 3 46 09 PM
mismatched provider account regions: HTTP 400 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"error linking wallet: mismatched provider account regions: geo reset is different"} ``` Screen Shot 2023-01-24 at 4 12 06 PM
mismatched provider accounts: HTTP 403 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG.......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 403 > Body: {"code":403,"message":"error linking wallet: unable to link bitflyer wallets: mismatched provider accounts: wallets do not match"} ``` Screen Shot 2023-01-24 at 4 14 57 PM
provider unavailable - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG.......... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 400 > Body: {"message":"Error validating Connecting Brave Rewards to bitFlyer is temporarily unavailable. Please try again later"} ``` Screen Shot 2023-01-24 at 4 17 20 PM
region not supported: HTTP 400 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG........... [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 400 > Body: {"code":400,"message":"region not supported: failed to validate account: invalid country"} ``` Screen Shot 2023-01-24 at 4 19 56 PM
request signature verification failure: HTTP 403 - PASSED pre-req: Have Charles Proxy running with rewrite rule (for both HTTP code and response body) for claim endpoint 1. Clean profile, staging env 2. Close and relaunch to get griffin seed 3. Enable Rewards, link custodian 4. Confirm rewrite rule worked and you see expected message ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Method: POST > Content: {"linkingInfo":"eyJhbG............ [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/bitflyer/15c8e186-dd96-50a0-b5bd-3a56c37ce124/claim > Result: Failure > HTTP Code: 403 > Body: {"code":403,"message":"request signature verification failure"} ``` Screen Shot 2023-01-24 at 4 21 59 PM
GeetaSarvadnya commented 1 year ago

Verification PASSED on

Brave | 1.48.132 Chromium: 109.0.5414.87 (Official Build) beta (64-bit)
-- | --
Revision | 2dc18eb511c56e012081b4abc9e38c81c885f7d4-refs/branch-heads/5414@{#1241}
OS | Windows 10 Version 21H2 (Build 19044.2486)
New Rewards States - PASSED
1. New user run through: Skip onboarding custodial connection - PASSED(follow-up issues logged) Steps: 1.1 Create new profile, close and relaunch to pull griffin seed 1.2 Enable Rewards, declare a supported region on staging like the IN, and go through onboarding. Verify that onboarding slides match designs. See https://github.com/brave/brave-browser/issues/27901 for differences found between implementation and figma design doc. Example | Example | Example | Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214232319-ae981c64-c071-4c48-b417-d02ccb326f6b.png) | ![image](https://user-images.githubusercontent.com/38657976/214232848-e59c8069-cc3f-49b4-b4a7-be19de58da29.png) | ![image](https://user-images.githubusercontent.com/38657976/214232389-6ea6a4f1-aad9-46a1-a71b-2c0182e6f692.png) | ![image](https://user-images.githubusercontent.com/38657976/214232588-756a4d77-0afb-4f10-b242-f79923744c51.png) | ![image](https://user-images.githubusercontent.com/38657976/214233153-45bf3a05-6164-494a-aa1b-0c8d078a2469.png) | ![image](https://user-images.githubusercontent.com/38657976/214233355-a414881b-3fe4-4450-9b45-354e3c7fa23c.png) | ![image](https://user-images.githubusercontent.com/38657976/214233614-0fff3277-d597-4526-b311-590f433ccb9f.png) | ![image](https://user-images.githubusercontent.com/38657976/214233949-0b45a511-4d53-4a96-93bb-6e52d1cbbde6.png) | ![image](https://user-images.githubusercontent.com/38657976/214234260-9df5f320-04af-46a0-9220-0b9c76735183.png) | ![image](https://user-images.githubusercontent.com/38657976/214234707-2c375543-5645-48c0-9057-7f6153259c35.png) 1.3 Do not connect to the custodian at the end of onboarding 1.4 Check if non-connected state Rewards panel & NTP Widget appear as expected Panel initially | Widget initially | Panel after visiting some sites | Widget after visiting some sites ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214238351-600a480a-f752-4956-a133-df1c3951a39d.png) | ![image](https://user-images.githubusercontent.com/38657976/214238426-a4ec800a-b86c-4609-8779-788d66757bcd.png) | ![image](https://user-images.githubusercontent.com/38657976/214238526-5e551fb3-3103-468e-b1fb-9214d564fd4a.png) | ![image](https://user-images.githubusercontent.com/38657976/214238567-6a505e4d-dd9c-4bf1-bd10-f3a55f077347.png) 1.5 Check brave://rewards settings page to see if it matches designs Note - see https://github.com/brave/brave-browser/issues/27619 for updated text for first paragraph, as figma does not match this. ![image](https://user-images.githubusercontent.com/38657976/214239795-25658c7b-f861-4851-89a2-9b7e6fe3a346.png) 1.6 Check brave://settings/rewards to see if it makes sense with non-connected state ![image](https://user-images.githubusercontent.com/38657976/214239969-c6bd41ab-b295-4688-8ac5-15581913a395.png) 1.7 Toggle Brave Private Ads ON/OFF and observe if ON/OFF state of Rewards panel corresponds Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214240121-bfbf9493-9b45-4351-84e1-425c1f48d47e.png) | ![image](https://user-images.githubusercontent.com/38657976/214240174-d98f0d93-f8eb-4fb2-b520-7fa913b57e08.png) 1.8 Toggle non-connected Rewards panel ON/OFF and observe if ON/OFF state of Brave Private Ads component in brave://rewards corresponds Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214240386-7eb5043c-5f66-4e61-9a4b-909970e3bee9.png) | ![image](https://user-images.githubusercontent.com/38657976/214240445-fbb04961-91ca-47ae-a0e3-db550ffdeba2.png) 1.9 Use an in-line tipping button to check the tipping banner, and ensure the tipping banner matches design spec for non-connected state users (i.e., is “locked”) Twitter (unverified) | Twitter (verified) | GitHub (unverified) | GitHub (verified) | Reddit (unverified) | Reddit (verified) ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214240920-557373c5-19b9-4b1d-a2f8-c8e39ca6cf6e.png) | ![image](https://user-images.githubusercontent.com/38657976/214241076-89f02cab-018a-41bf-8b5d-a7ce4990c90a.png) | ![image](https://user-images.githubusercontent.com/38657976/214241679-b8cd9ec0-65df-44bf-bb47-291d1ca0eb22.png) | ![image](https://user-images.githubusercontent.com/38657976/214241730-6ec8bf12-b3aa-4fb6-832f-fb55a1f38c7d.png) | ![image](https://user-images.githubusercontent.com/38657976/214241863-ce0365cb-ae36-4d44-9889-df5cf1afba60.png) | ![image](https://user-images.githubusercontent.com/38657976/214242195-8d86efce-d568-4a34-9dfa-c26367bdbbe4.png) 1.10 Navigate to a couple verified sites/channels and check the Rewards panel for count of them. (This is finicky and we have a follow-up issue to make this more reliable - see https://github.com/brave/brave-browser/issues/27907) Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214251813-b138b3c2-b544-410d-a202-5e9ea9b8739e.png) | ![image](https://user-images.githubusercontent.com/38657976/214253292-00b374dc-7440-4920-996a-cbfb56d6b1a5.png) 1.11 Connect to a custodian and verify that user is now in connected state with full Rewards experience Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214257321-9076f423-9c78-4505-8244-4778db07d93a.png) | ![image](https://user-images.githubusercontent.com/38657976/214257412-d8542288-1511-4d1b-886c-526fdcfd10ec.png) 1.12 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214257754-8717b8ac-00c3-453d-bbff-80efc3e41ec6.png) | ![image](https://user-images.githubusercontent.com/38657976/214257870-fe414890-3c1d-4a5c-87f9-8fbf8ad4fd61.png) | ![image](https://user-images.githubusercontent.com/38657976/214258030-a1af8bf1-4dde-4230-9234-db85b88e31a0.png) | ![image](https://user-images.githubusercontent.com/38657976/214258235-1a5affbc-c041-4bea-a4dd-fe49657d4ddb.png) 1.13 Try to trigger an Auto-Contribute Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214260750-8b9ebf45-0238-4763-b658-32cb01233240.png) | ![image](https://user-images.githubusercontent.com/38657976/214260911-38979d75-2d26-4c9d-84b7-5158d066a04a.png) | ![image](https://user-images.githubusercontent.com/38657976/214260993-ab0dec08-684c-41e4-b911-192e08524436.png) | ![image](https://user-images.githubusercontent.com/38657976/214261092-4c2c2417-6771-493c-a724-639e40e09c5b.png) 1.14 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214261277-ab85a352-711a-438f-89dc-c18df3220155.png) | ![image](https://user-images.githubusercontent.com/38657976/214261357-1956b065-8f37-43a5-9619-b20199f46be9.png) 1.15 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214261492-2506e678-cc24-4d3b-9348-97b99cc38f00.png) | ![image](https://user-images.githubusercontent.com/38657976/214261544-b799ab11-cdbb-4f61-b4b4-c29844510ab5.png) | ![image](https://user-images.githubusercontent.com/38657976/214261619-5dfdc648-c130-46f8-be3a-7f2df3f729aa.png) 1.16 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel looks normal. Don’t need to check anything else. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214261779-a677aa90-1278-4fb2-a242-c612b23e15f7.png) | ![image](https://user-images.githubusercontent.com/38657976/214261851-dad52121-49b9-43e2-848b-b14b8b4a2145.png) | ![image](https://user-images.githubusercontent.com/38657976/214262006-55efa0c8-8b3e-4b57-b661-efb69779d3b0.png)
2. New user run through: Connect to custodian during onboarding - PASSED Steps: 2.1 Create new profile, relaunch to pull griffin seed 2.2 Enable Rewards, declare a supported region on staging like the IN, and go through onboarding, and connect to custodian at the end of onboarding via the last onboarding slide. (Verify that onboarding slides match designs.) Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214322030-aae75124-bbe2-44e8-8022-c88debb38f93.png) | ![image](https://user-images.githubusercontent.com/38657976/214322318-2c52234d-2dcf-485c-a672-77bd4e73a434.png) | ![image](https://user-images.githubusercontent.com/38657976/214322403-bb2c29e5-f531-4efd-9c1c-a7de035ffd29.png) 2.3 User should now be in full connected state Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214324371-d8fc07e2-5406-4c46-84cf-efd5015f2b74.png) | ![image](https://user-images.githubusercontent.com/38657976/214324499-880008da-e905-4237-89de-4065fe61ac26.png) 2.4 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214334922-ef20dd8a-9cd0-48f5-b486-f38d9a78fc73.png) | ![image](https://user-images.githubusercontent.com/38657976/214335040-969ee09c-b41c-470d-b6c4-1e1c942fada9.png) | ![image](https://user-images.githubusercontent.com/38657976/214335110-8b4c6ea9-525e-4381-870a-bb813921337f.png) | ![image](https://user-images.githubusercontent.com/38657976/214335200-f912e1dd-cea5-49ca-9c17-e0186ca182b8.png) 2.5 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214336444-f85cc680-8a31-4d8a-84cc-4ec82163b7aa.png) | ![image](https://user-images.githubusercontent.com/38657976/214336503-2b9cdf64-4ce0-47d4-9644-bf0b9f6a0ed0.png) | ![image](https://user-images.githubusercontent.com/38657976/214336604-7cf1a162-9706-4fd5-a3f1-db060db3ada5.png)
3. New user run through (JP): Skip onboarding custodial connection - PASSED Steps: 3.1 Create new profile, relaunch to pull griffin seed 3.2 Enable Rewards, declare JP, and go through onboarding. Verify that onboarding slides match designs. In this case, there should NOT be a slide about Auto-Contribute since it is Japan. Example | Example | Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214481962-ef95c6af-3b59-4ef4-bc16-aa84cbfae358.png) | ![image](https://user-images.githubusercontent.com/38657976/214482078-9ca46ece-af77-4ee5-855c-7e52918bfcae.png) | ![image](https://user-images.githubusercontent.com/38657976/214482131-81385beb-f4fa-4e85-98cd-ed16bf5e28fb.png) | ![image](https://user-images.githubusercontent.com/38657976/214481892-514b65ec-5781-49ff-8312-43e5c3032412.png) | ![image](https://user-images.githubusercontent.com/38657976/214482240-02dd034b-e8c4-4619-8219-5541c534704b.png) | ![image](https://user-images.githubusercontent.com/38657976/214482879-865e6eaa-6d42-4022-b222-5319138eb348.png) | ![image](https://user-images.githubusercontent.com/38657976/214482736-a7c7ce5e-5ceb-45c7-a901-dbeb42113a95.png) | ![image](https://user-images.githubusercontent.com/38657976/214483164-50c5108d-26b4-4f2b-94cb-eb746fce9329.png) | ![image](https://user-images.githubusercontent.com/38657976/214483901-76e201f8-e79c-46b3-ab10-9177bf5221c3.png) 3.3 Do not connect to the custodian at the end of onboarding 3.4 Check if non-connected state Rewards panel & NTP Widget appear as expected. Note, after visiting some sites, panel/widget don't display any messaging about supporting creators as in non-JP case. Per discussion via slack with Chris this is expected for now, and he has logged https://github.com/brave/brave-browser/issues/27936 to determine how to handle this. Panel | Widget ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214485372-bd182e5b-ff8f-49a8-b93d-dc5bfb2779a1.png) | ![image](https://user-images.githubusercontent.com/38657976/214485755-bde12536-c4ce-4aca-b5f4-9ca77d21d287.png) 3.5 Check brave://rewards settings page to see if it matches designs ![image](https://user-images.githubusercontent.com/38657976/214485841-6eb451ee-c64c-409e-bde3-335e345409ad.png) 3.6 Check brave://settings/rewards to see if it makes sense with non-connected state ![image](https://user-images.githubusercontent.com/38657976/214486163-854d3fd4-3707-4173-bed5-8f4f6acae347.png) 3.7 Toggle Brave Private Ads ON/OFF and observe if ON/OFF state of Rewards panel corresponds Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214486559-4f87c4c1-83ac-4170-9d04-469a31ab1544.png) | ![image](https://user-images.githubusercontent.com/38657976/214486610-7ebd831a-0b7c-4599-95ee-74f6a1f18df1.png) 3.8 Toggle non-connected Rewards panel ON/OFF and observe if ON/OFF state of Brave Private Ads component in brave://rewards corresponds Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214486682-1a9c43b7-bb28-442b-85ae-0def395502da.png) | ![image](https://user-images.githubusercontent.com/38657976/214486800-a0a3b8d6-7889-4306-82d0-52cf524c01f6.png) 3.9 Use an in-line tipping button to check the tipping banner, and ensure the tipping banner matches design spec for non-connected state users (i.e., is “locked”) Twitter (unverified) | Twitter (verified) | GitHub (unverified) | GitHub (verified) | Reddit (unverified) | Reddit (verified) ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214487999-2bfa6347-c748-4119-ab10-daaeae1fd8f9.png) | ![image](https://user-images.githubusercontent.com/38657976/214488221-929521c2-5e03-44c1-bd6c-656c0bffbef0.png) | ![image](https://user-images.githubusercontent.com/38657976/214488404-985ffac9-8302-4d09-8572-22ce52da2ed4.png) | ![image](https://user-images.githubusercontent.com/38657976/214488486-590eded3-57df-4e2c-a417-f241087aaf0d.png) | ![image](https://user-images.githubusercontent.com/38657976/214488704-0283854c-80d9-443f-8a30-8e4efe8ebc7a.png) | ![image](https://user-images.githubusercontent.com/38657976/214488627-ba0f7480-1c37-4d45-a394-6dbb0e6998ab.png) 3.10 Navigate to a couple verified sites/channels and check the Rewards panel for count of them. (This is finicky and we have a follow-up issue to make this more reliable.) - does not work in JP region, see https://github.com/brave/brave-browser/issues/27936 3.11 Connect to a custodian and verify that user is now in connected state with full Rewards experience ![image](https://user-images.githubusercontent.com/38657976/214489500-bc8153c4-cb92-4e74-8ee0-64806c97ac65.png) 3.12 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214489706-6ab3ee51-a111-4499-a4b7-baa09036d5e7.png) | ![image](https://user-images.githubusercontent.com/38657976/214489757-3d245584-ad3b-4103-943c-ca264b834e8d.png) | ![image](https://user-images.githubusercontent.com/38657976/214489836-fc4bac3f-db38-4c8d-bb6c-7dd9f3718faa.png) | ![image](https://user-images.githubusercontent.com/38657976/214489879-533dddbe-a95a-43a9-b2e7-1a3acd66e8e3.png) | ![image](https://user-images.githubusercontent.com/38657976/214489945-4f7cdadd-d9ed-4774-b95b-17fb1c84be06.png) 3.13 Go to brave://rewards page and make sure there is no Auto-Contribute section, since this is Japan. ![image](https://user-images.githubusercontent.com/38657976/214490101-feb79f30-cfee-49ff-8139-2e4329863c03.png) 3.14 Go to brave://settings/rewards and make sure there is no Auto-Contribute section. ![image](https://user-images.githubusercontent.com/38657976/214490215-100df72d-160c-47b8-92e0-4b3dc3decd5e.png) 3.15 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214490346-a8451c76-ee5c-4635-a80c-6a5330b285f1.png) | ![image](https://user-images.githubusercontent.com/38657976/214490433-9119b409-600c-40ed-936f-cbf293361ec8.png) | ![image](https://user-images.githubusercontent.com/38657976/214490683-bb66593a-5248-4d00-afd7-b9bf85821739.png)
4. New user run through (JP): Connect to custodian during onboarding - PASSED Steps: 4.1 Create new profile, relaunch to pull griffin seed 4.2 Enable Rewards, declare JP, and go through onboarding. Verify that onboarding slides match designs. In this case, there should NOT be a slide about Auto-Contribute since it is Japan. 4.3 Connect to a custodian at the end of onboarding slides. Only bitFlyer should appear as an option. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214502085-f9d9d97c-6559-40cd-98b1-69135a379ebb.png) | ![image](https://user-images.githubusercontent.com/38657976/214502117-a62c4815-4a47-4bfb-aac5-2a8b17019781.png) | ![image](https://user-images.githubusercontent.com/38657976/214502164-ca927642-05ce-454a-bd54-996a056a760e.png) 4.4 User should now be in the full connected state. 4.5 Check brave://rewards settings page to see if there’s Auto-Contribute. There should be no A-C since this is Japan. ![image](https://user-images.githubusercontent.com/38657976/214503356-189d7bef-6146-46dd-b271-65e7ecaf6175.png) 4.6 Check brave://settings/rewards for anything odd (e.g., check for presence of A-C) ![image](https://user-images.githubusercontent.com/38657976/214503432-953560bd-7844-4665-be49-6479a5ebb69e.png) 4.7 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214503551-d804aec1-1679-459c-871a-a752036f0da7.png) | ![image](https://user-images.githubusercontent.com/38657976/214503650-11668804-c199-4dbf-9ff8-ba01b2c20a07.png) | ![image](https://user-images.githubusercontent.com/38657976/214503727-e3a937f7-b201-464e-89b0-4d2a9048744b.png) | ![image](https://user-images.githubusercontent.com/38657976/214503912-14deb7b9-2183-45eb-b3a5-63ee9859b5b9.png) | ![image](https://user-images.githubusercontent.com/38657976/214503850-dcf4e3fe-7522-4f83-bb76-c03a57e2248a.png) 4.8 Go to brave://rewards page and make sure there is no Auto-Contribute section, since this is Japan. ![image](https://user-images.githubusercontent.com/38657976/214504022-94f5029c-cc11-4443-bd8e-a98901d0a881.png) 4.9 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214504082-6a62ff5b-a448-40fa-aa35-fc990ebac2a7.png) | ![image](https://user-images.githubusercontent.com/38657976/214504121-ccccbf30-4f3b-4765-b6ce-9533afbe03db.png) | ![image](https://user-images.githubusercontent.com/38657976/214504155-e5f86ab6-5b90-4f47-95b9-901fa3dd20db.png)
5. New user: Non-connected state (connect to custodian during onboarding cancellation) - PASSED Steps: 5.1 Create new profile, relaunch to pull griffin seed 5.2 Enable Rewards, declare a supported region on staging like the UK, and go through onboarding, and click to connect to custodian at the end of onboarding via the last onboarding slide. (Verify that onboarding slides match designs.) Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214523044-9c15d6be-09d0-476c-965c-b552017c37a6.png) | ![image](https://user-images.githubusercontent.com/38657976/214523155-d4bd34a3-92fd-4ed1-9868-b777f67c5af6.png) | ![image](https://user-images.githubusercontent.com/38657976/214523211-9b8680d4-74d8-4f4e-9f1c-1ee50f126310.png) 5.3 Don’t complete connecting to custodian and cancel out 5.4 Check if user is in non-connected state ![image](https://user-images.githubusercontent.com/38657976/214523297-570839b3-8276-4103-8880-0c47dcd8afc5.png)
6. New user: Non-connected state (no available custodian, then custodian becomes available) - PASSED Note, slightly different than from test plan, using Charles Proxy to simulate this scenario. Pre-req: Have Charles Proxy set up to simulate a country (such as US) not being on the "allow" list for any custodian. Steps: 6.1 Create new profile, relaunch to pull griffin seed. 6.2 Enable Rewards, declare the unsupported region in your Charles Proxy rule (US in my case) and go through onboarding, and verify there is NO slide at the end of onboarding telling the user to connect to a custodian. Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214528655-c27475a2-42eb-4a77-9c11-7e649d4899a7.png) ![image](https://user-images.githubusercontent.com/38657976/214528342-964a2189-5dc8-48da-84fa-d49cfd98464d.png) 6.3 Check if user is in no-custodian non-connected state (corresponds to row “Custodial services not available in your location” in Figma) Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214529122-2b57ebd8-a8b7-4e7d-9077-4d031d72352c.png) | ![image](https://user-images.githubusercontent.com/38657976/214529170-ab7d7a80-84c0-43cf-ac67-23dbd3fd84a9.png) | ![image](https://user-images.githubusercontent.com/38657976/214529234-485d5296-c4fb-4016-ada2-f7f943c373fe.png) 6.4 Update the Charles Proxy rule to enable US at /parameters for a custodian 6.5 Try to trigger/wait for new /parameters to be fetched by the browser 6.6 Once new /parameters fetched, check to see if user has evolved into the non-connected state with available custodians and matches spec (“Connect your account prompt” row in Figma) Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214530104-894c08b6-8e4a-44d0-9107-ea75b1979a63.png) | ![image](https://user-images.githubusercontent.com/38657976/214530170-5e1148ad-0810-4433-9dfc-67594a3847cf.png) | ![image](https://user-images.githubusercontent.com/38657976/214530217-1e311c31-a6e0-4dc9-9a68-dcb6ea0c5b19.png) | ![image](https://user-images.githubusercontent.com/38657976/214530290-9aeda4df-bbc4-41bd-ab51-68d93337009c.png) 6.7 Go and connect a custodian and check if it is successfully linked Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214530552-b0543b1a-195a-4b70-a7a9-301ba2e3305d.png) | ![image](https://user-images.githubusercontent.com/38657976/214530595-362dc564-24cd-4605-b62c-ab1a5f5b9a94.png) | ![image](https://user-images.githubusercontent.com/38657976/214531290-c53935b7-720f-4794-8568-ef16e18d057e.png) | ![image](https://user-images.githubusercontent.com/38657976/214531345-53aa7d01-5c24-4a1e-8119-02b03da30ace.png)
7. New user: Non-connected state (available custodian → no custodians) - PASSED Note, slightly different than from test plan, using Charles Proxy to simulate this scenario. Pre-req: Have Charles Proxy set up to simulate a country (such as US) being on the "allow" list for custodian(s). 7.1 Create a new profile, relaunch to pull griffin seed 7.2 With Charles Proxy rule running, Enable Rewards, declare a supported region by any custodian (like US) and go through onboarding, and do not connect to custodian yet. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ....... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.358205,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","US"],"block":[]}},"payoutStatus":{"bitflyer":"off","gemini":"complete","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} [5152:13764:0125/163038.198:VERBOSE9:logging_util.cc(135)] ``` 7.3 Check if the user is in a normal non-connected state with available custodians. Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214547223-6daf32f2-dfe8-4c15-9815-15cd99594d64.png) | ![image](https://user-images.githubusercontent.com/38657976/214547350-8d675d04-125e-44a3-8fd7-73687c806d4c.png) | ![image](https://user-images.githubusercontent.com/38657976/214547388-f5ae5e73-8789-4c64-aae8-6b6e5f20e30c.png) | ![image](https://user-images.githubusercontent.com/38657976/214547491-bfffba31-fb72-40b6-8e64-ba91a07a6324.png) | ![image](https://user-images.githubusercontent.com/38657976/214547532-9d7fea01-4dd5-4270-9693-17bbf4933c60.png) 7.4 Update the Charles Proxy rule to disable US at `/parameters` for all custodians. 7.5 Try to trigger/wait for new `/parameters` to be fetched by the browser Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ......... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.358205,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE"],"block":[]}},"payoutStatus":{"bitflyer":"off","gemini":"complete","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}} [22860:22024:0125/163712.870:VERBOSE9:logging_util.cc(135)] ``` 7.6 Once new `/parameters` are fetched, check to see if the user has evolved into the non-connected state with no available custodians (corresponding to “Custodial services not available in your location row” in Figma). Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214548120-ebfae8d3-0d89-48e8-b095-61ce7bd8d0fe.png) | ![image](https://user-images.githubusercontent.com/38657976/214548188-821f50e6-4a87-440e-b793-7e0e3bc7388f.png) | ![image](https://user-images.githubusercontent.com/38657976/214548234-cdac6aa0-51c6-4929-afb7-5df7cb24f2c5.png)
8. Upgrade case run through: unverified with vBAT → grandfathered-unverified state - PASSED Steps: 8.1 In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as US) 8.2 Don’t accept UGP grant (just to avoid confusion) 8.3 Send yourself some ad grant (vBAT), and claim it Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214550931-d71a7ad3-1fa6-4337-99c1-9b96bd656e1e.png) | ![image](https://user-images.githubusercontent.com/38657976/214551031-397a400a-5c00-47fa-8610-70b375784e7f.png) | ![image](https://user-images.githubusercontent.com/38657976/214551140-52de2583-f60c-452c-9677-0610917ae034.png) | ![image](https://user-images.githubusercontent.com/38657976/214551474-8aeb835c-2c56-45c9-8197-4f86af9f79fe.png) | ![image](https://user-images.githubusercontent.com/38657976/214551527-836cf5e9-cc21-41eb-b139-bd6e6d5b5fb4.png) 8.4 Upgrade Brave to version with Rewards 2.5 Phase 3. 8.5 Check if you’re in the grandfathered-unverified state and that your vBAT balance is still correct. Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214551951-ea4fb6ee-4c43-4058-9e41-f2c56d204efc.png) | ![image](https://user-images.githubusercontent.com/38657976/214552044-bb909c7c-e2df-432e-ae32-46966f1106fe.png) | ![image](https://user-images.githubusercontent.com/38657976/214552103-1622bc45-847e-4fdd-8ac2-edb7d7372fd2.png) | ![image](https://user-images.githubusercontent.com/38657976/214552166-0a93d0b7-c1d1-47fb-abeb-3233b272a20e.png) 8.6 Send vBAT tip and make a vBAT A-C to check if it still works Tip: Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214552575-a33e8275-c854-47ac-b4e9-ae8321c2133a.png) | ![image](https://user-images.githubusercontent.com/38657976/214552625-a33f8c1d-51dd-4e8c-8c22-584fb5afb0e0.png) | ![image](https://user-images.githubusercontent.com/38657976/214552709-8104f755-36f0-47ed-8cb0-413ce055fa51.png) | ![image](https://user-images.githubusercontent.com/38657976/214552809-5e5fb411-4e7c-4ebc-bda7-e8e7af892937.png) | ![image](https://user-images.githubusercontent.com/38657976/214552882-2a785227-3855-46fe-af94-3e8e77dc2ba9.png) A-C: Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214556370-22fa4495-da9a-4c39-9311-2d54590a8c88.png) | ![image](https://user-images.githubusercontent.com/38657976/214556402-80abb3ac-ff1f-4ae4-84a7-23ec45df185a.png) | ![image](https://user-images.githubusercontent.com/38657976/214556442-b72acb3a-fc4a-4e24-b0d8-412324a2e820.png) | ![image](https://user-images.githubusercontent.com/38657976/214556502-900c9401-0ebe-4096-bdd5-c96be69af351.png) | ![image](https://user-images.githubusercontent.com/38657976/214556581-0182f723-a6a8-4348-b838-077f914afaac.png) | ![image](https://user-images.githubusercontent.com/38657976/214556652-af161db1-8a5c-4540-b033-abd6253e80b1.png) | ![image](https://user-images.githubusercontent.com/38657976/214556715-baf2f5c8-675a-4867-aad9-344dd6b9ead5.png) 8.7 Verify/connect a custodian 8.8 Confirm your vBAT was userdrained to custodial account Logs: ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v3/wallet/uphold/beb78f2e-d917-575e-a62b-d191c8c0f2fa/claim > Method: POST > Content: {"signedLinkingRequest":eyJib2R5Ijp7ImRlbm9taW5hdGlvbiI6e................ [ RESPONSE - OnResponse ] > Url: https://grant.rewards.bravesoftware.com/v3/wallet/uphold/beb78f2e-d917-575e-a62b-d191c8c0f2fa/claim > Result: Success > HTTP Code: 200 > Body: [20136:19172:0125/172433.144:VERBOSE9:logging_util.cc(135)] [ RESPONSE - OnRequest ] ... > Url: https://grant.rewards.bravesoftware.com/v2/suggestions/claim > Result: Success > HTTP Code: 200 > Body: {"drainId":"ba3e5e43-d772-4740-88e0-671383219386"} [20136:19172:0125/172434.287:VERBOSE9:logging_util.cc(135)] ``` Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214558767-785f8749-3d65-4885-9de9-21ed79b6501f.png) | ![image](https://user-images.githubusercontent.com/38657976/214558798-5597ed0c-0217-44db-b072-7028adeeb008.png) 8.9 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214558902-5325db2f-e7be-4050-a375-e2e846529f4d.png) | ![image](https://user-images.githubusercontent.com/38657976/214558991-d8685436-84af-4d96-8ebc-6bb535d78b02.png) 8.10 Now that you’re verified/connected to a custodian, make a tip and see if it works Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214559148-30aeb16d-831b-4dc8-9547-4bad2207509a.png) | ![image](https://user-images.githubusercontent.com/38657976/214559205-fa604aec-5d1c-4ff8-9008-60e9f10ae523.png) | ![image](https://user-images.githubusercontent.com/38657976/214559239-f3dd48a3-8d58-4b56-afe0-f0889d5d26d9.png) | ![image](https://user-images.githubusercontent.com/38657976/214559343-df20e6ba-617b-41a6-9fc5-b0bb57a950f6.png) | ![image](https://user-images.githubusercontent.com/38657976/214559381-0fdf91c0-bd02-4721-b94a-9c48764722eb.png) | ![image](https://user-images.githubusercontent.com/38657976/214559436-6f0bbc5a-541b-40e1-be3e-37dc4ffa8ace.png) 8.11 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214559591-93d33e92-96b0-4b12-ac1d-875e0c16a367.png) | ![image](https://user-images.githubusercontent.com/38657976/214559640-af7cfa79-8c84-4d18-9bc8-f941850db375.png) | ![image](https://user-images.githubusercontent.com/38657976/214559698-5d35d763-25f5-4ff7-9027-cbb1c68321e2.png) 8.12 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state (not grandfathered-unverified). After this point, you don’t need to check anything else. Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214559833-24a68494-0f5e-47f5-abd4-05638be95203.png) | ![image](https://user-images.githubusercontent.com/38657976/214559873-e0608ba9-3e13-4ea5-97bd-7c73577f6c1f.png) | ![image](https://user-images.githubusercontent.com/38657976/214559906-851a078b-e2fe-4e06-9a84-de78e058a155.png) | ![image](https://user-images.githubusercontent.com/38657976/214559942-a7bb7086-ce75-44c5-94fe-daecea082109.png) | ![image](https://user-images.githubusercontent.com/38657976/214560019-dc075e4f-dce5-4fec-91ca-379289e31c28.png) | ![image](https://user-images.githubusercontent.com/38657976/214560084-0b9bbd67-6682-4a94-8c9b-2011f9b6c8a4.png)
9. Upgrade case run through: Verified state → connected state - PASSED Steps: 9.1 In an older version of Brave, create a Rewards profile in staging in a non-JP region, and connect to a custodian. Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214562715-13ff7a62-e5e0-489a-8ee9-bf5b17e3af31.png) | ![image](https://user-images.githubusercontent.com/38657976/214562766-203ddbab-15c1-49d7-b6e9-6bc0c24ea97d.png) 9.2 Upgrade your browser to a version containing Rewards 2.5 Phase 3 changes. Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214562976-7b3fb988-d806-435d-a816-ac3a2e5e8ffb.png) | ![image](https://user-images.githubusercontent.com/38657976/214580502-46ed5ad3-54b9-44b2-926b-a47378c6cfd7.png) 9.3 Ensure that you remain in the connected state and that things are working properly (e.g., try a tip and an A-C) Tip: Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214582039-edfccf33-8252-40b0-b5ea-ebbbe0a916a1.png) | ![image](https://user-images.githubusercontent.com/38657976/214582154-a8a88d29-ad84-4749-9804-db33eaa640f0.png) | ![image](https://user-images.githubusercontent.com/38657976/214581200-7f871344-9576-4a04-97d1-6d8bbaa2c05d.png) | ![image](https://user-images.githubusercontent.com/38657976/214581261-f92b1be0-c25a-4221-aa55-787934c9220f.png) | ![image](https://user-images.githubusercontent.com/38657976/214581456-f8e1467f-ed8d-48ef-ae0b-18a5fe883826.png) A-C: Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214582287-605edac8-e3d5-486a-9182-8f59eca91507.png) | ![image](https://user-images.githubusercontent.com/38657976/214582391-1b941e30-9a02-4edb-8a0c-9ce61a7ddfa2.png) | ![image](https://user-images.githubusercontent.com/38657976/214582470-2b0ead1a-1fdf-454f-a25e-0f311bd88e64.png) | ![image](https://user-images.githubusercontent.com/38657976/214581865-ab1ee30a-a95d-4180-965c-461467d60c1c.png) | ![image](https://user-images.githubusercontent.com/38657976/214582667-3ae80a69-97da-45ac-8c5c-6bd95ba15b97.png) | ![image](https://user-images.githubusercontent.com/38657976/214582710-e31a52e8-9978-4d54-88a9-66eeab12deea.png) 9.4 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214588882-5b01ba17-d3a4-4e7f-b41f-87b87a5bb62c.png) | ![image](https://user-images.githubusercontent.com/38657976/214588956-f0167de7-bc65-4e97-9864-b2279c7c5564.png) 9.5 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214589135-2c3e6f6f-3d6d-4362-82c3-757fd27e9331.png) | ![image](https://user-images.githubusercontent.com/38657976/214589193-cf9f47af-1f26-40c0-8343-2e5df2ab63a2.png) | ![image](https://user-images.githubusercontent.com/38657976/214589278-b19a5f4f-7a25-4d65-9bcf-e930708349d4.png) 9.6 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state. After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214589438-54040adc-e0c6-408a-a6b6-c558a81aa1d2.png) | ![image](https://user-images.githubusercontent.com/38657976/214589518-d9a6a4da-518b-49a1-8ac5-199bb06d5471.png) | ![image](https://user-images.githubusercontent.com/38657976/214589623-637791fd-467c-45f4-8ef0-564b586528db.png) | ![image](https://user-images.githubusercontent.com/38657976/214589832-6d665cbe-9ff4-403b-8c02-c132e2c6a2e4.png)
10. Upgrade case run through: Verified state (logged out) → connected state (logged out) - PASSED Steps: 10.1 In an older version of Brave, create a Rewards profile in staging in a non-JP region, and connect to a custodian. 10.2 Go into the custodian website and expire your OAuth access token 10.3 Check that you’re now in the logged out state Example | Example | Example ---- | ----|-------- ![image](https://user-images.githubusercontent.com/38657976/214597252-9b685189-b63d-440d-91e0-d88102c4443e.png) | ![image](https://user-images.githubusercontent.com/38657976/214597335-cfffd67a-4451-4df1-83a4-7bdcf3095581.png) | ![image](https://user-images.githubusercontent.com/38657976/214597411-2d82623c-b667-413d-b1cb-a9c5ab844475.png) 10.4 Upgrade your browser to a version containing Rewards 2.5 Phase 3 changes. 10.5 Ensure that you remain in logged out state (can also check brave://rewards-internals for confirmation) Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214595891-4bba0e92-8dc4-4e0b-bc8e-f1589135141b.png) | ![image](https://user-images.githubusercontent.com/38657976/214595974-3d3d089e-5140-4a68-aa4f-a71b2771da09.png) | ![image](https://user-images.githubusercontent.com/38657976/214596071-f2d803d6-8d01-4b9e-9a9b-5deccf716868.png) 10.6 Check if the tipping banner is unlocked (it should be) Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214606464-043b2847-fea2-4f28-8ccc-5b3011887981.png) | ![image](https://user-images.githubusercontent.com/38657976/214607042-77344f3c-9140-4a7b-8cdf-baa6978afa99.png) 10.7 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu. Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214607398-4e7c64cc-4c67-4ace-843b-44f18efe8e11.png) | ![image](https://user-images.githubusercontent.com/38657976/214607530-b3049d3a-8390-4f6e-95ef-33df47eed0eb.png) 10.8 Log into your custodian again and make sure you’re properly transitioned to the connected state Example | Example | Example | Example ---- | ---- | ----|------ ![image](https://user-images.githubusercontent.com/38657976/214607862-54af1727-7762-4e0b-bd7f-78102c029dbf.png) | ![image](https://user-images.githubusercontent.com/38657976/214607982-891293d5-b461-4b8f-ba8c-8c42d9537f2e.png) | ![image](https://user-images.githubusercontent.com/38657976/214608193-7a0815e8-7eb6-479b-9d95-0a3f12953389.png) | ![image](https://user-images.githubusercontent.com/38657976/214608835-da4b4f7d-71cc-4e7f-b481-0102dbc48501.png) 10.9 Once connected again, make a tip to see if it works. Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214609100-49deeb7d-a3f8-4fe0-8f58-3b80ae56b299.png) | ![image](https://user-images.githubusercontent.com/38657976/214609359-af60f7d1-2e77-4065-a311-fc05ecf93a40.png) | ![image](https://user-images.githubusercontent.com/38657976/214609489-0c34bf4d-463b-45b5-88be-70765e885b3a.png) | ![image](https://user-images.githubusercontent.com/38657976/214609626-d2391721-fed4-4f78-a01b-a2b39e0f67ac.png) | ![image](https://user-images.githubusercontent.com/38657976/214609766-b26a8c1d-b741-42de-8d85-7948ef24b6dc.png) | ![image](https://user-images.githubusercontent.com/38657976/214609886-2951d7e1-c9c4-47bf-8da3-2610c90affdb.png)
11. Upgrade case (JP): Unverified → grandfathered-unverified - PASSED Steps: 11.1 In older version of Brave, create a Rewards profile in staging and declare JP Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214621607-fd9ea6eb-3f05-4585-bf3c-cd60c6899e76.png) | ![image](https://user-images.githubusercontent.com/38657976/214622092-2f2f6ce7-87ee-4adb-8a2c-b8c64afc468d.png) 11.2 Don’t accept UGP grant (just to avoid confusion) 11.3 Upgrade Brave to version with Rewards 2.5 Phase 3. 11.4 Check if you’re in the grandfathered-unverified state 11.5 A-C should not appear in brave://rewards Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214625860-329cb66f-3bea-4760-85bd-8497579a3a0b.png) | ![image](https://user-images.githubusercontent.com/38657976/214626371-810f9281-4dcd-4ae0-b7fc-8743f54ccd39.png) 11.6 A-C should not appear in brave://settings/rewards ![image](https://user-images.githubusercontent.com/38657976/214626717-6a90cd7f-dfb6-425a-b8a9-e88a05d41718.png) 11.7 Verify/connect a custodian (bitFlyer) Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214627757-ad83f0cb-489b-4711-9ebd-b3100973fefb.png) | ![image](https://user-images.githubusercontent.com/38657976/214627898-e634889e-3535-4440-9b06-273e15f8c328.png) | ![image](https://user-images.githubusercontent.com/38657976/214627996-0e446d81-deb3-4d3b-bf0c-33cbdcb0ba2e.png) 11.8 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214628218-72fb06eb-788b-4e9a-967f-31e360bd87c9.png) | ![image](https://user-images.githubusercontent.com/38657976/214628292-3bf021af-c117-4ac6-8258-6bb9b099030d.png) | ![image](https://user-images.githubusercontent.com/38657976/214628369-46c8e398-df59-4811-82f5-b805b58ef536.png) 11.9 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state (not grandfathered-unverified). After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214628547-01c8fc5e-ee91-445d-8377-f987eb56b076.png) | ![image](https://user-images.githubusercontent.com/38657976/214628631-c63ef609-43cd-45a8-97ff-cba47db35e45.png) | ![image](https://user-images.githubusercontent.com/38657976/214628759-843b3f81-02c7-4d17-8650-a01f7d91e33f.png) | ![image](https://user-images.githubusercontent.com/38657976/214628875-8877a87f-e9bc-4e71-b2a5-3f5e591eed14.png)
12. Upgrade case (JP): Verified → Connected -PASSED Steps: 12.1 In an older version of Brave, create a Rewards profile in staging and declare JP, then verify with bitFlyer. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214760500-829e9c77-599d-4421-ae31-a4fe8f6838d6.png) | ![image](https://user-images.githubusercontent.com/38657976/214763170-567bd687-e3a0-4178-b897-eed330d84a82.png) | ![image](https://user-images.githubusercontent.com/38657976/214763213-4f32902a-7e2e-424b-aaa7-0368f34633f6.png) 12.2 Don’t accept UGP grant (just to avoid confusion) 12.3 Upgrade Brave to version with Rewards 2.5 Phase 3. 12.4 Check if you’re in the new connected state. Example | Example ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214764501-d8cb96cd-96c7-4c8e-be7d-a8a2e1f37dbf.png) | ![image](https://user-images.githubusercontent.com/38657976/214764544-36090555-4fc2-48ef-97be-577c78b557c6.png) 12.5 A-C should not appear in brave://rewards ![image](https://user-images.githubusercontent.com/38657976/214764641-5923af87-b494-40f9-830a-2d80c940b6eb.png) 12.6 A-C should not appear in brave://settings/rewards ![image](https://user-images.githubusercontent.com/38657976/214764688-8bca1b30-33ea-4681-9cf6-52b4752a88c4.png) 12.7 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214764808-e3a98f9b-2a18-405c-a109-ac7ba477f2eb.png) | ![image](https://user-images.githubusercontent.com/38657976/214764830-5941f3f3-3790-4794-9f22-dade6a69b88a.png) | ![image](https://user-images.githubusercontent.com/38657976/214764843-922d762f-2926-4921-8902-f0e1674f1afc.png) 12.8 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state. After this point, you don’t need to check anything else. Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214764994-282492b3-8283-453c-bbb0-c18ad4052f3f.png) | ![image](https://user-images.githubusercontent.com/38657976/214765040-dcaffb1e-c9ac-499c-95b0-6d51886923a4.png) | ![image](https://user-images.githubusercontent.com/38657976/214765098-a2e127e5-4052-41be-912c-5fc03718b413.png) | ![image](https://user-images.githubusercontent.com/38657976/214765175-4db07dad-9881-4a5c-8b4a-d1942bc54fb5.png)
13. Upgrade case: Brave Private Ads & A-C disabled remains disabled - PASSED Steps: 13.1 In an older version of Brave, create a new Rewards profile on staging and declare a non-JP region. You do not need to connect to a custodian. 13.2 Disable Brave Private Ads. 13.3 Disable Auto-Contribute. ![image](https://user-images.githubusercontent.com/38657976/214773721-bd81842b-5888-410f-9cd7-00976a941834.png) 13.4 Upgrade to a version of Brave with Rewards 2.5 Phase 3. 13.5 Ensure that you’re in the grandfathered-unverified state. ![image](https://user-images.githubusercontent.com/38657976/214775821-41a7755d-241a-4880-834f-2855755907e3.png) 13.6 Open tipping banner and make sure that it’s unlocked (since you’re in the grandfathered-unverified state) Example | Example | Example | Example ---- | ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214776339-f16def61-71f6-4f90-9db2-2950c2479e9f.png) | ![image](https://user-images.githubusercontent.com/38657976/214776391-4b588e40-0c42-47f1-86d2-affad8c50e94.png) | ![image](https://user-images.githubusercontent.com/38657976/214776560-93b09017-9a3a-4dd7-8254-cb7dc4c3c1de.png) | ![image](https://user-images.githubusercontent.com/38657976/214776598-8ff861c7-19ad-492c-91e7-4d7c5f40e760.png) 13.7 Ensure that Brave Private Ads and Auto-Contribute are still disabled and weren’t turned on ![image](https://user-images.githubusercontent.com/38657976/214776761-f28ba429-2e88-4222-bb46-622be4b7d058.png)
14. General Rewards regression testing - , with follow up issue(s)_PASSED Steps: 14.1 New profile and start in the non-connected state (in a non-JP region). 14.2 Go into brave://rewards page, go into settings of individual components and see if things generally seem to appear as working like they used to. - Logged https://github.com/brave/brave-browser/issues/27987, 30 day ads history is blank after viewing ads - confirmed changes made on brave://rewards are reflected on brave://settings/rewards 14.3 General regression testing of the brave://settings/rewards page and its various toggles. - confirmed changes made on brave://settings/rewards are reflected on brave://rewards (where applicable) - confirmed in-line tip buttons can be toggled off from brave://settings/rewards 14.4 Connect to a custodian ![image](https://user-images.githubusercontent.com/38657976/214798817-dae61339-0bbc-4a20-8244-e28927c2ed79.png) 14.5 Restart Brave browser 14.6 Go into brave://rewards page, go into settings of individual components and see if things generally seem to appear as working like they used to. - Logged https://github.com/brave/brave-browser/issues/27990, "Allow contributions for videos" setting does not work any more, but is also not working on previous version, so not related to these changes - confirmed changes made on brave://rewards are reflected on brave://settings/rewards 14.7 General regression testing of the brave://settings/rewards page and its various toggles. - confirmed changes made on brave://settings/rewards are reflected on brave://rewards - confirmed in-line tip buttons can be toggled off from brave://settings/rewards 14.8 Generally keep an eye out for anything that is out of the ordinary based on past Rewards experience. 14.9 After everything works, reset Brave Rewards 14.10 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel is now the new non-connected state. After this point, you don’t need to check anything else. Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- |----|-----|----- ![image](https://user-images.githubusercontent.com/38657976/214799079-c12aef2f-6fda-45ce-9279-a0ba3fe8bae7.png) | ![image](https://user-images.githubusercontent.com/38657976/214799113-a119e0df-675a-460f-8c40-5b89b4c4b6d7.png) | ![image](https://user-images.githubusercontent.com/38657976/214799177-08c1e9bf-0367-445d-adaa-455c31392e3e.png) | ![image](https://user-images.githubusercontent.com/38657976/214799303-688ee46c-e722-4d1e-b253-f40e052e479e.png) | ![image](https://user-images.githubusercontent.com/38657976/214799371-5ef3e370-c939-4f59-858a-fe957253e68e.png) | ![image](https://user-images.githubusercontent.com/38657976/214799484-e7072569-af8c-43d9-8dd2-83e06913f795.png) | ![image](https://user-images.githubusercontent.com/38657976/214799539-82bbcc3f-4b23-4838-aeda-ef48fe728fdc.png)
15. Rewards payout banner status (non-connected state) - PASSED Steps: 15.1 Create new profile in staging so you’re in the new non-connected state 15.2 View couple of ads and confirm ads are cashed in with the server (verify `Successfully redeemed unblinded payment tokens` msg in logs) 15.3 Look for the last message similar to "You have X unblinded payment tokens which will be redeemed in (some hours, minutes, seconds) at (some time)" message, once this time has come, you should then see a response in the logs for "OnRedeemUnblindedPaymentTokens". If this is successful, you can proceed to next steps. Logs: ``` [28168:17224:0126/181624.569:VERBOSE1:redeem_unblinded_payment_tokens.cc(139)] OnRedeemUnblindedPaymentTokens [28168:17224:0126/181624.570:VERBOSE6:redeem_unblinded_payment_tokens.cc(141)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/payment/d61e366d-7b90-5215-b522-b6b782f8dc25 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 15.4 Advance clock to the next month to the 2nd (or between 1st and 7th), and then relaunch the browser, to see if you see any “Payout will arrive in x days” banner”. There should NOT be any banner like this. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214840044-efc5fa5f-d832-444f-b321-362711cdfd68.png) | ![image](https://user-images.githubusercontent.com/38657976/214840147-b362e080-2d55-46ef-bbff-4e6121ad6907.png) | ![image](https://user-images.githubusercontent.com/38657976/214840189-f4a7e1de-c1a0-4d7b-91d8-eb6069d98ea4.png) 15.5 Advance your clock to the 8th or later and then relaunch the browser. 15.6 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “processing” for unverified users. 15.7 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ...... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-10T00:00:00Z","vbatExpired":false} [28412:25572:0208/183013.711:VERBOSE9:logging_util.cc(135)] ``` 15.8 Make sure no “processing” banner appears in the Rewards panel, NTP widget, or brave://rewards page. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214843347-c93245be-cf6b-4e00-9bba-bda8f06bc86c.png) | ![image](https://user-images.githubusercontent.com/38657976/214843398-e4fcd9e6-dc5b-49e2-83b8-b12a01602ef2.png) | ![image](https://user-images.githubusercontent.com/38657976/214843450-2eb07449-96f8-445b-8dd2-699054e8c626.png) 15.9 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “complete” for unverified users. 15.10 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-10T00:00:00Z","vbatExpired":false} [7060:14132:0208/184353.797:VERBOSE9:logging_util.cc(135)] ``` 15.11 Make sure no “complete” banner appears in the Rewards panel, NTP widget, or brave://rewards page. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214844558-2a163794-348f-4e55-8e88-c8877a33f152.png) | ![image](https://user-images.githubusercontent.com/38657976/214844618-500e88ba-98c4-4661-92a5-241b0f687957.png) | ![image](https://user-images.githubusercontent.com/38657976/214844668-87f14061-bd22-44d6-970c-a98ad3220d78.png) 15.12 Bring your clock back to the current month to 9th or later, and then relaunch the browser, and make sure you also don’t see anything then either. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214844558-2a163794-348f-4e55-8e88-c8877a33f152.png) | ![image](https://user-images.githubusercontent.com/38657976/214844618-500e88ba-98c4-4661-92a5-241b0f687957.png) | ![image](https://user-images.githubusercontent.com/38657976/214844668-87f14061-bd22-44d6-970c-a98ad3220d78.png)
16. Grandfathered-unverified payout banner status - FAILED, follow up issue logged Follow up issue logged: https://github.com/brave/brave-browser/issues/28001 Steps: 16.1 Create rewards profile on older version of Brave and view some ads. Then update to 1.48.x so that you’re in the grandfathered-unverified state. Logs: ``` [3373:259:0124/091631.833129:VERBOSE1:redeem_unblinded_payment_tokens.cc(138)] OnRedeemUnblindedPaymentTokens [3373:259:0124/091631.833224:VERBOSE6:redeem_unblinded_payment_tokens.cc(140)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v2/confirmation/payment/f7f05c8a-b24c-58ec-bf8f-457ac75b6578 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 16.2 View couple of ads and confirm ads are cashed in with the server (verify `Successfully redeemed unblinded payment tokens` msg in logs) 16.3 Look for the last message similar to "You have X unblinded payment tokens which will be redeemed in (some hours, minutes, seconds) at (some time)" message, once this time has come, you should then see a response in the logs for "OnRedeemUnblindedPaymentTokens". If this is successful, you can proceed to next steps. Logs: ``` [3515:259:0124/092259.269428:VERBOSE1:redeem_unblinded_payment_tokens.cc(139)] OnRedeemUnblindedPaymentTokens [3515:259:0124/092259.269521:VERBOSE6:redeem_unblinded_payment_tokens.cc(141)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/payment/f7f05c8a-b24c-58ec-bf8f-457ac75b6578 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 16.4 Advance clock to the next month to the 2nd (or between 1st and 7th), and then relaunch the browser, to see if you see any “Payout will arrive in x days” banner”. You SHOULD SEE this banner. Example | Example | Example ---- | ---- | ---- 4a | 4b | 4c 16.5 Advance your clock to the 8th or later and then relaunch the browser. 16.6 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “processing” for unverified users. 16.7 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ...... [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.261167,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 16.8 Make sure the “processing” banner APPEARS in the Rewards panel, NTP widget, and brave://rewards page. - FAILED, banner does not appear as expected: Example | Example | Example ---- | ---- | ---- 8a | 8b | 8c 16.9 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “complete” for unverified users. 16.10 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [3896:259:0208/093501.525166:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.260985,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 16.11 Make sure the “complete” banner APPEARS in the Rewards panel, NTP widget, or brave://rewards page. - FAILED, does not show as expected: Example | Example | Example ---- | ---- | ---- 11a | 11b | 11c 16.12 Bring your clock back to the current month to 9th or later, and then relaunch the browser, and make sure you don’t see the banners (because it’s the wrong month) Example | Example | Example ---- | ---- | ---- 12a | 12b | 12c
17. Connected state payout banner status - FAILED, follow up issue logged Steps: 17.1 Create a new Rewards profile then connect to a custodian (Uphold) 17.2 View couple of ads and confirm ads are cashed in with the server (verify `Successfully redeemed unblinded payment tokens` msg in logs) 17.3 Look for the last message similar to "You have X unblinded payment tokens which will be redeemed in (some hours, minutes, seconds) at (some time)" message, once this time has come, you should then see a response in the logs for "OnRedeemUnblindedPaymentTokens". If this is successful, you can proceed to next steps after closing the browser. 3 Logs: ``` [4687:259:0124/101421.320639:VERBOSE1:redeem_unblinded_payment_tokens.cc(139)] OnRedeemUnblindedPaymentTokens [4687:259:0124/101421.320744:VERBOSE6:redeem_unblinded_payment_tokens.cc(141)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/payment/9e1fb591-488f-513c-9db7-c9d0d3cd41d4 Response Status Code: 200 Response: {"message":"Ok","status":200} ``` 17.4 Advance clock to the next month to the 2nd (or between 1st and 7th), and then relaunch the browser, to see if you see any “Payout will arrive in x days” banner”. You SHOULD SEE this banner. Close browser. Example | Example | Example ---- | ---- | ---- 4a | 4b | 4c 17.5 Advance your clock to the 8th or later and then relaunch the browser. 17.6 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “processing” for Uphold users/payout status. 17.7 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [4991:259:0208/101914.132505:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.261167,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"processing"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 17.8 Make sure the “processing” banner APPEARS in the Rewards panel, NTP widget, and brave://rewards page. - FAILED, appears on panel and rewards page, but not NTP widget. Logged follow up issue https://github.com/brave/brave-browser/issues/28006. Example | Example | Example ---- | ---- | ---- 8a | 8b | 8c 17.9 Ask someone on server team, or use Charles Proxy to set the payout status at the staging /parameters endpoint to “complete” for Uphold users/payout status. 17.10 Make sure that the browser has picked up this new /parameters value. Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET [5119:259:0208/102136.827925:VERBOSE6:logging_util.cc(134)] [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.26234,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-19T00:00:00Z","vbatExpired":true} ``` 17.11 Make sure the “complete” banner APPEARS in the Rewards panel, NTP widget, or brave://rewards page. - FAILED, appears on panel and rewards page, but not NTP widget. Logged follow up issue https://github.com/brave/brave-browser/issues/28006. Example | Example | Example ---- | ---- | ---- 11a | 11b | 11c 17.12 Bring your clock back to the current month to 9th or later, and then relaunch the browser, and make sure you don’t see the banners (because it’s the wrong month) Example | Example | Example ---- | ---- | ---- 12a | 12b | 12c
18. Connected state payout banner but no earnings - PASSED Steps: 18.1 Clean profile 1.48.x and connect to custodian 18.2 View couple of ads but make sure to confirm ads are NOT cashed in with the server (should be no verify `Successfully redeemed unblinded payment tokens` msg in logs) - Did this by using Charles Proxy to simulate failed payment token fetch. ![image](https://user-images.githubusercontent.com/38657976/214855622-60080258-440d-4678-9d39-4ae826561985.png) Logs (just a few to show how the failure worked): ``` [18620:19684:0126/193235.164:VERBOSE1:redeem_unblinded_token.cc(136)] OnFetchPaymentToken [18620:19684:0126/193235.165:VERBOSE6:redeem_unblinded_token.cc(138)] URL Response: URL: https://anonymous.ads.bravesoftware.com/v3/confirmation/5481ac0f-5852-4677-821c-cf28b76be4f6/paymentToken Response Status Code: 500 ..... [18620:19684:0126/193235.179:VERBOSE1:redeem_unblinded_token.cc(167)] Failed to fetch payment token [18620:19684:0126/193235.182:VERBOSE1:redeem_unblinded_token.cc(382)] Failed to redeem unblinded token click confirmation for ad_notification with transaction id 5481ac0f-5852-4677-821c-cf28b76be4f6 and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [18620:19684:0126/193235.184:VERBOSE9:confirmation_state_manager.cc(359)] Saving confirmations state [18620:19684:0126/193235.186:VERBOSE1:confirmations.cc(42)] Added click confirmation for ad_notification with transaction id 5481ac0f-5852-4677-821c-cf28b76be4f6 and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 to the confirmations queue [18620:19684:0126/193235.200:VERBOSE1:refill_unblinded_tokens.cc(99)] No need to refill unblinded tokens as we already have 48 unblinded tokens which is above the minimum threshold of 20 [18620:19684:0126/193235.202:VERBOSE1:confirmations.cc(135)] Retry sending failed confirmations in 0 hours, 3 minutes, 1 second at 19:35:36.201 ...... ``` 18.3 Set the API payout status to "Complete" through Charles or ask server team Logs: ``` [ REQUEST ] > URL: https://api.rewards.bravesoftware.com/v1/parameters > Method: GET ........ [ RESPONSE - OnResponse ] > Url: https://api.rewards.bravesoftware.com/v1/parameters > Result: Success > HTTP Code: 200 > Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-10T00:00:00Z","vbatExpired":false} [3308:27312:0126/193738.389:VERBOSE9:logging_util.cc(135)] ``` 18.4 Advance the system clock to the next month (sometime 1st to 7th) and relaunch the browser. 18.5 Countdown banner should NOT show. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214856746-3dad5791-ff7a-43c7-a39f-b5afb3742080.png) | ![image](https://user-images.githubusercontent.com/38657976/214856799-74d662f2-2ff2-4b62-919e-031ca942355b.png) | ![image](https://user-images.githubusercontent.com/38657976/214856866-8a3317cd-8fa2-43be-9c0a-cb2109d7d02f.png) 18.6 Move clock to 8th or later (only change the day, not the month – keep month as the one set in step 18.4) and relaunch the browser. Payout arrived (“complete”) message should NOT be shown to the user. Example | Example | Example ---- | ---- | ---- ![image](https://user-images.githubusercontent.com/38657976/214856746-3dad5791-ff7a-43c7-a39f-b5afb3742080.png) | ![image](https://user-images.githubusercontent.com/38657976/214856799-74d662f2-2ff2-4b62-919e-031ca942355b.png) | ![image](https://user-images.githubusercontent.com/38657976/214856866-8a3317cd-8fa2-43be-9c0a-cb2109d7d02f.png)

GeetaSarvadnya commented 1 year ago

Verification INPROGRESS on Samsung Galaxy Verion 12 running Bravemonoarm64.apk_1.48.141

LaurenWags commented 1 year ago

note - Android has its own issue, https://github.com/brave/brave-browser/issues/27055, so we will be putting verification notes there 👍🏻

MadhaviSeelam commented 1 year ago

Verification PASSED using

Brave   1.48.152 Chromium: 109.0.5414.119 (Official Build) beta (64-bit) 
Revision    772095164c7d5d4e73160f858efed3b5e87eca83-refs/branch-heads/5414@{#1458}
OS  Linux

Limited QA verification has been done in Linux for this issue as below:

New Rewards states - PASSED
1. New user run through: Skip onboarding custodial connection -PASSED 1.1 Create new profile. Close and relaunch Brave to pull griffin seed 1.2 Enable Rewards, declare a supported region on staging like the US, and go through onboarding. Verify that onboarding slides match designs encountered: https://github.com/brave/brave-browser/issues/27901 filed: https://github.com/brave/brave-browser/issues/28257 Example | Example | Example | Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- image|image|image|image|image|image|image|image|image|image 1.3 Do not connect to the custodian at the end of onboarding image 1.4 Check if non-connected state Rewards panel & NTP Widget appear as expected Panel initially | Widget initially | Panel after visiting some sites | Widget after visiting some sites ---- | ---- | ---- | ---- image|image|image|image 1.5 Check brave://rewards settings page to see if it matches designs image 1.6 Check brave://settings/rewards to see if it makes sense with non-connected state image 1.7 Toggle Brave Private Ads ON/OFF and observe if ON/OFF state of Rewards panel corresponds Example | Example ---- | ---- image|image 1.8 Toggle non-connected Rewards panel ON/OFF and observe if ON/OFF state of Brave Private Ads component in brave://rewards corresponds Example | Example ---- | ---- image|image 1.9 Use an in-line tipping button to check the tipping banner, and ensure the tipping banner matches design spec for non-connected state users (i.e., is “locked”) Twitter (unverified) | Twitter (verified) | GitHub (unverified) | GitHub (verified) | Reddit (unverified) | Reddit (verified) ---- | ---- | ---- | ---- | ---- | ---- image|image|image|image|image|image| 1.10 Navigate to a couple verified sites/channels and check the Rewards panel for count of them. (This is finicky and we have a follow-up issue to make this more reliable - see https://github.com/brave/brave-browser/issues/27907) Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- image|image|image|image|image 1.11 Connect to a custodian and verify that user is now in connected state with full Rewards experience Example | Example ---- | ---- image|image 1.12 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example ---- | ---- | ---- | ---- image|image|image|image 1.13 Try to trigger an Auto-Contribute Example | Example | Example | Example ---- | ---- | ---- | ---- image|image|image|image 1.14 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example ---- | ---- image|image 1.15 After everything works, reset Brave Rewards Example | Example | Example ---- | ---- | ---- image|image|image 1.16 Check if Brave Rewards starts from the beginning again. Enable Brave Rewards and check if the Rewards panel looks normal. Don’t need to check anything else. Example | Example ---- | ---- image|image|image|
2. New user run through: Connect to custodian during onboarding - PASSED Steps: 2.1 Create new profile, relaunch to pull griffin seed 2.2 Enable Rewards, declare a supported region on staging like the US, and go through onboarding, and connect to custodian at the end of onboarding via the last onboarding slide. (Verify that onboarding slides match designs.) Example | Example | Example ---- | ---- | ---- image|image|image 2.3 User should now be in full connected state Example | Example ---- | ---- image|image 2.4 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working Example | Example | Example | Example ---- | ---- | ---- | ---- image|image|image|image| 2.5 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- image|image|image
3. New user run through (JP): Skip onboarding custodial connection -PASSED Steps: 3.1 Create new profile, relaunch to pull griffin seed 3.2 Enable Rewards, declare JP, and go through onboarding. Verify that onboarding slides match designs. In this case, there should NOT be a slide about Auto-Contribute since it is Japan. Example | Example | Example | Example | Example | Example | Example | Example | Example ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- image|image|image|image|image|image|image|image|image ``` [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v1/promotions?migrate=true&platform=linux > Method: GET [193815:193815:0203/090321.043619:VERBOSE5:ledger_impl.cc(117)] [ REQUEST ] > URL: https://grant.rewards.bravesoftware.com/v4/wallets > Method: POST > Content: {"geoCountry":"JP"} > Content Type: application/json; charset=utf-8 > Header digest: SHA-256=Me3rye9M1qvq7hjPKSFwYENAess0B71534D9pQlDJU4= > Header signature: keyId="3fc7db1166b5fdfdefac44b2c56b1025e7ff629ae000369a1706a335607f3431",algorithm="ed25519",headers="digest (request-target)",signature="lKW4LJXdU8CrVQKt93iOZ1flvhK096IlZGgr9bErZDu0eLNwomFy9wfqcxUFOkC0RnKFIppApnDiKfHiqUinAQ==" > Header accept: application/json [193815:1 ``` 3.3 Do not connect to the custodian at the end of onboarding 3.4 Check if non-connected state Rewards panel & NTP Widget appear as expected. Note, after visiting some sites, panel/widget don't display any messaging about supporting creators as in non-JP case. Per discussion via slack with Chris this is expected for now, and he has logged https://github.com/brave/brave-browser/issues/27936 to determine how to handle this. 3.5 Check brave://rewards settings page to see if it matches designs 3.6 Check brave://settings/rewards to see if it makes sense with non-connected state 3.7 Toggle Brave Private Ads ON/OFF and observe if ON/OFF state of Rewards panel corresponds 3.8 Toggle non-connected Rewards panel ON/OFF and observe if ON/OFF state of Brave Private Ads component in brave://rewards corresponds 3.9 Use an in-line tipping button to check the tipping banner, and ensure the tipping banner matches design spec for non-connected state users (i.e., is “locked”) 3.10 Navigate to a couple verified sites/channels and check the Rewards panel for count of them. (This is finicky and we have a follow-up issue to make this more reliable.) - does not work in JP region, see https://github.com/brave/brave-browser/issues/27936 3.11 Connect to a custodian and verify that user is now in connected state with full Rewards experience 3.12 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working 3.13 Go to brave://rewards page and make sure there is no Auto-Contribute section, since this is Japan. ![image](https://user-images.githubusercontent.com/98358127/216659101-cb12d644-50d3-4ec6-be72-d770a1fa189e.png) 3.14 Go to brave://settings/rewards and make sure there is no Auto-Contribute section. ![image](https://user-images.githubusercontent.com/98358127/216659232-710b4f8e-63f8-42f2-8c25-6cec8facd3dc.png) 3.15 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu Example | Example | Example ---- | ---- | ---- image|image|image
4. New user run through (JP): Connect to custodian during onboarding -PASSED Steps: 4.1 Create new profile, relaunch to pull griffin seed 4.2 Enable Rewards, declare JP, and go through onboarding. Verify that onboarding slides match designs. In this case, there should NOT be a slide about Auto-Contribute since it is Japan. 4.3 Connect to a custodian at the end of onboarding slides. Only bitFlyer should appear as an option. Example | Example | Example ---- | ---- | ---- image|image|image 4.4 User should now be in the full connected state. 4.5 Check brave://rewards settings page to see if there’s Auto-Contribute. There should be no A-C since this is Japan. 4.6 Check brave://settings/rewards for anything odd (e.g., check for presence of A-C) ![image](https://user-images.githubusercontent.com/98358127/216659232-710b4f8e-63f8-42f2-8c25-6cec8facd3dc.png) 4.7 Try to make a tip to a website to check if tipping banner is now unlocked and that tips are working 4.8 Go to brave://rewards page and make sure there is no Auto-Contribute section, since this is Japan. ![image](https://user-images.githubusercontent.com/98358127/216666838-55b90473-f0c4-4fbb-8656-3cc698fee58a.png) 4.9 Make sure there’s no “Disconnect from {custodian}” button anymore in the custodian account submenu
13. Upgrade case: Brave Private Ads & A-C disabled remains disabled - PASSED Steps: 13.1 In an older version of Brave, create a new Rewards profile on staging and declare a non-JP region. You do not need to connect to a custodian. Example | Example ---- | ---- image|image 13.2 Disable Brave Private Ads. 13.3 Disable Auto-Contribute. ![Screenshot from 2023-02-03 10-28-23](https://user-images.githubusercontent.com/98358127/216668336-8c99d7d4-a39e-4802-bd96-b556e5a69e03.png) 13.4 Upgrade to a version of Brave with Rewards 2.5 Phase 3. 13.5 Ensure that you’re in the grandfathered-unverified state. ![Screenshot from 2023-02-03 10-31-23](https://user-images.githubusercontent.com/98358127/216669062-963d6dfe-260d-4c4f-af59-7dd263c6c45b.png) 13.6 Open tipping banner and make sure that it’s unlocked (since you’re in the grandfathered-unverified state) Example | Example | Example | Example ---- | ---- | ---- | ---- image|image|image|image 13.7 Ensure that Brave Private Ads and Auto-Contribute are still disabled and weren’t turned on ![Screenshot from 2023-02-03 10-38-27](https://user-images.githubusercontent.com/98358127/216671368-a0a63ecc-8761-4abc-907b-5fc723f6a205.png)
btlechowski commented 1 year ago

Verification passed on

Brave 1.48.149 Chromium: 109.0.5414.119 (Official Build) beta (64-bit)
Revision 772095164c7d5d4e73160f858efed3b5e87eca83-refs/branch-heads/5414@{#1458}
OS Ubuntu 18.04 LTS

Ads testing

Update unverified profile to 1.48.x

Verified unblinded tokens were refilled in 1.47.x: ``` [3738:3738:0126/135302.746089:VERBOSE1:refill_unblinded_tokens.cc(200)] OnGetSignedTokens [3738:3738:0126/135302.746297:VERBOSE6:refill_unblinded_tokens.cc(202)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v2/confirmation/token/6aa37495-6e27-5336-9f4c-bd2c7d45358c?nonce=9d98b72c-6db1-41cc-bb40-b01aa3b921ac Response Status Code: 200 Response: {"batchProof":"Bp9DKmhk52c6zgpQwCaWZ6uLINKb1pSo/4GZdqt0DQoMt2mg4D+F3ydRk3c1o++/6AMtFcjYLIZNdDCHhUWeAw==","signedTokens":["5gKtKYTQDRoslTiUq4kdNAien9qEY42VAyAJo51Z9zQ=","MH84X9VgBxRtBqxjCJxTXd+a4gS3douH6Z/pz7gO5gg=","yhPP8IAqWtu+Vax3LZtK4SIX/SHdbOfBLEvz9lj7OgM=","UNq9FCBNa3tSH+GRggdUP4gCNVGHY+B3JjdpOY22UAo=","pAN64xOvnVkqnw0QieWtsPKSgrKjfuuM0AXh7Xz0u04=","BMaiEmh7hKvzFtaKaAa392Z63BOqdLHjKFqJMQDxblU=","SgwHAgkk9QxHywrh2CW3505VeWJDAjDNnxpgNUDZ+gg=","CA99G9ZGnBBMTBS2txtWGBvG0TwbHofj/QMu5ljA8Ss=","8EUChxCaXP0ZdK3uWWnqqsDZNDWVu3SSGYTLFQaPFUI=","NAoLgNhviIPaBoViCj0HT2IPIdebHAgYmhsyAw3BCjM=","4PVoqdPMtopyg4Ffx/8raoWMLkE5IPgoLN9WKIaqHm8=","CGNbgpdthFpfDFQBa3a5wiK1YNL6yAcRR7yBidQNx3w=","+EyJGdRs2gRfUto+vIRXRGZvMinpy7zhDKDvf+ThK0U=","zOXdQ3aRJNeF0z+zaG4g6AthJMkAUpD3TJX0IWy0pwU=","amK7Y1P+tII5F065ujz5g8bglARHOgNEiALScPe0Wns=","tIq+JXy3kykpAH6cX0PoZsqRSowwXW2CNH+dRt4Luyc=","0lBDrMAZ6bcvaWqdF3wGbk8uzBlm/TEspjP4s0q0/F8=","pCBReHmxA2JpQW5LiSZH6S7NIZReL8Io7lxNJ1VnJHY=","WK426SV5XPLIobPcFb1CB4h39PY1awNQ9DRn5qcPslM=","KBAVACnVwZgZ/HpV6mfWsM5gXVmNRNgXowfXYNo1sjU=","SlMOpLvrlg1wihfBUqwyMAJFnmrMKLY+lXQ8KrHi9VM=","ahYeJCIy6qDao3jdFx1GO4FfSPWzLQce1SgDN6GQJA8=","rCCdv5kR6SaOe8farRshTR7QFUVjiXBYER2eYxkknAY=","DpoxwTH+xBCYkoEZxDdman+FZatabiMxgpnTeLZvwiU=","Uj8i9E5xeCawRUtS+enrJyQrqaUhNkA9hCF2JzljAB4=","2KJO/PVSFZ7F++Jhv4SCzAH+V30zj4qpJEX7JNztu1E=","/ovVmE9Q1mA5Ijh6TDwjz1MOMyni8kYZgnVwJh5HyWs=","zqRSUDDtj28cXYoEyn3ssBAAy7Px1P23TO2h4glgnSM=","kFJ9LQ/h4NrgktESr/HzRKAvmceVwtog/HEApK8jPgU=","1nLgFA6U/sBuxR8YA46nq20bKfe1h3jkyj5ljTqL7kc=","mKLVSVLJyNXAXZRwFpFaAyKvRpHZAQC830ipj2xOQEw=","zIE/wi+gMfL3BVRZsBIly/dE/W+x4D1E1p/wyQM09Co=","ekxLD1INOqfHcjDwT1a+4tmzPezlUM8Za7RUFE+CgWE=","DEkQ5PRq+CPgx3CZBVuDycHCi87azIt2XrLRe5gfTWQ=","PIfSCl/51XTo0LclSsaY9jq8+it2sEUESMXabAEj/l8=","oimy9u9y+x43O8qVxORDIKcL//l3X0sGV5KVYjmmo3Q=","JJSfQDodD2ELkMw9RS+rwAApheWkgOWmPMaeinj5SEw=","8BUDP3wdTiYgSRorGFy+UW4l417PA7YN8AADnC2TSCA=","IvZm8qi2HggqZoENzg7rmzWfTGDq3QRFLBat73FSaD4=","sultC5FI2Sb5YIuud3S7dK8cxTMSry5YJii42Rpk+Rg=","fCFN/WbDZk0JwJbU++ZStMgY9Aldn5JVRVSw25mQBzw=","dtMg/lXupMb1S2NLxoJ0je6EFL1WproGlH0pL509MS8=","kuIZMTR6w3kksy1hCjmoL8dW0Cf62KS1om8v82vUEH8=","zn6sKU9A7pCX9IvW5wLqhH1kfP0yXJO9tBr/UKmD02E=","8AIEng5AXpCWyoQshvehuvpclCkPJ5oBHPpbFaYXqn4=","WpKqIcJhJk76CXuN0wShWYPA6ieyCS12VW1ezQFnOVw=","oKPySj1GwJJrpTGT1+LLT1MYCSM+CXABHgC4tFPQXlg=","ah6pMaJkcEPyIHZMWFXKI2KleKuJBm5UrndSHYoXahU=","YF5OXgQmU2HkDcANxGsAojU8NDb/5+c5A8gV7QaNJ1g=","VMEP+nUDzx58iZSyJMXu814wM+bXyL9dHPMldVKD31M="],"publicKey":"JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4="} [3738:3738:0126/135302.781448:VERBOSE1:refill_unblinded_tokens.cc(343)] Added 50 unblinded tokens, you now have 50 unblinded tokens [3738:3738:0126/135302.781665:VERBOSE1:refill_unblinded_tokens.cc(349)] Successfully refilled unblinded tokens ``` Verified ad was shown in 1.47.x ``` [3738:3738:0126/135408.400475:VERBOSE1:eligible_notification_ads_v1.cc(38)] Get eligible notification ads: [3738:3738:0126/135408.411247:VERBOSE1:eligible_notification_ads_v1.cc(196)] Get eligible ads for untargeted segment [3738:3738:0126/135408.443430:VERBOSE2:priority.h(35)] 11 ads with a priority of 1 in bucket 1 [3738:3738:0126/135408.444284:VERBOSE1:eligible_notification_ads_v1.cc(229)] 11 eligible ads out of 11 ads for untargeted segment [3738:3738:0126/135408.445561:VERBOSE1:notification_ad.cc(135)] Opportunity arose to serve a notification ad [3738:3738:0126/135408.448887:VERBOSE1:notification_ad_serving.cc(131)] Found 11 eligible ads [3738:3738:0126/135408.449169:VERBOSE1:notification_ad_serving.cc(196)] Served notification ad: placementId: 65d36f2f-4937-49e7-8dee-33c7bf9f919a creativeInstanceId: 4cda5cb7-c4f8-4cbc-8898-58de12ece304 creativeSetId: 45ea5952-37ca-41f0-88c2-4b546b0e6f4b campaignId: 1c1ac828-db13-49bb-9128-090132044b7f advertiserId: ecbcc833-8b1d-4867-98f7-ad2341396ce8 segment: untargeted title: Ad5 body: Ad5 targetUrl: https://brave.com/ [3738:3738:0126/135408.453339:VERBOSE1:ads_service_impl.cc(843)] Timeout notification ad with placement id 65d36f2f-4937-49e7-8dee-33c7bf9f919a in 120 s [3738:3738:0126/135408.453865:VERBOSE3:notification_ad_event_served.cc(19)] Served notification ad with placement id 65d36f2f-4937-49e7-8dee-33c7bf9f919a and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [3738:3738:0126/135408.462986:VERBOSE3:notification_ad_event_viewed.cc(19)] Viewed notification ad with placement id 65d36f2f-4937-49e7-8dee-33c7bf9f919a and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [3738:3738:0126/135408.483999:VERBOSE1:notification_ad_event_served.cc(28)] Successfully logged notification ad served event [3738:3738:0126/135408.524986:VERBOSE6:notification_ad_event_viewed.cc(28)] Successfully logged notification ad viewed event ``` Verified user was paid for the ad 1.47.x ``` [3738:3738:0126/135419.055168:VERBOSE1:redeem_unblinded_token.cc(367)] Successfully redeemed unblinded token view confirmation for ad_notification with transaction id a91fbabe-2ce8-4de2-bcbf-162ad3de2a51 and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [3738:3738:0126/135419.061958:VERBOSE1:confirmations.cc(222)] You have 1 unblinded payment tokens which will be redeemed ``` Tokens were not refilled after update to 1.48.x: ``` [4834:4834:0126/140433.988163:VERBOSE1:refill_unblinded_tokens.cc(99)] No need to refill unblinded tokens as we already have 49 unblinded tokens which is above the minimum threshold of 20 ``` Verified tokens were refilled after connecting to uphold: ``` [4834:4834:0126/140433.988163:VERBOSE1:refill_unblinded_tokens.cc(200)] OnGetSignedTokens [4834:4834:0126/140433.988393:VERBOSE6:refill_unblinded_tokens.cc(202)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/token/6aa37495-6e27-5336-9f4c-bd2c7d45358c?nonce=595b8e2f-2ebe-41e1-91be-18c9e352ac0a Response Status Code: 200 Response: {"batchProof":"TORXRIof+LZZwGGBj6yqCH9DqR7jZ7S/bRZBZN4vmgJ3I9a8ZzVb73fj+YJsWJqhAdyAVC3oNQLSOAX4O0wTDA==","signedTokens":["akVpIVKki1hcnWs+rKHngPwRV+CIGq/ml8pSayy+HUA=","ZMQWAJ7pVNL3ZVXk78OAEdKJsa/p1+RAfKbtflNXflc=","VvBRLR22PNVxpIa+MdJWy2nn5WtCFBWbSn8UXVprwkw=","Pl0hDD5OARj/TBWAB64Fv2uFYpBfGCj/UezpDrKpwVI=","zDhovltG4NqqHHUfkdHFVYtY36Swi2Xg6lrb5eqHdww=","ElutXsRhZtgzZhA7w5dKWyNS/x0AaWeTMEwZMYyFVBU=","zm7CAYhLbWv6W9OSNwf3EvIawlV3Bz6z7vIWZA7EKQo=","NprHINCX6TnHh4r/lLeKt+OlObbKcPGgOoyn5QirLUQ=","OOKc77QKknG/n3BdEvtKK7DdOYUeUxpdcene+hlDwmU=","+HoscjqlfduiN4zZkGjCVbENgRZJHIbPAchkNgxWeHk=","CMrveteYaC534KAlQFTSkcNqcwpYcS9t303l3FXHrBU=","fq2sp8hHodF7uS3nD5tGJz0i15wz8+ufjYMyEDC05i8=","DtKwT3vC588jjegwjl6Hnxt20LjVQxXYLPBWVO1NV0Y=","Vl7siviEpSpz++ztyYpWlBsVj/DzWaS14bfn0DAy/Xs=","auUUEEdxzCLzbm2xCW1J8RvInZNhPppF/tQRgfKMv1I=","nu/CRwSUTw5mTiGf7JKqDFHDytmlGBf1WvA9bJM+bGw=","NsVEGcwgSbehtT1Gh5AH++dohToyeXKQjPQdRTyKnnk=","KDJSs71S3giM+ohS+GmRW1kWie7PdF9jTu+GJ8Yd/js=","3PV0ZQakLn1rOSRSh6KXyhUpQ9x2kZwHANwydM5AV0M=","NvfgMuS41QROAKg8SAKnSHXEUzNz5FsYDW3yWLvrvAA=","UDlDPzCS9j8Hy2JlimAsJcFiwU80jdimwnynB8sXulY=","fMayyIBSfZOGkZyLQAEpbo081Ov/dTaUPl0xMhxAn2w=","CNe+wRKYFMNQmAChzuLLV+mVz2sWZaza/0KS+idd0lE=","jposdnNsyQ0W+9xlF+QV3FeH6erwq6Klomgh1xHbjHc=","eAbdGT2sJtjv9LxSZndoil/AtJ/ynWmc8UTVyzStQyA=","zvx/KhkdRjhoYycz5dw/E6HeydqesR+PJP46xGL0GWA=","ylMVpHWnoxoZhq8EWVLe2QIQ2r5+DP5r9sf8RyLJCRA=","Ktqs42tgxJWByaCYo2braBbIdhPmg+7oR2KYXcvRagE=","LJeXRGPtzdd+4Fc6qvJ7OWiGWpunwgpvMdPr2SLgu3k=","ILD8L1MqqD1DKTX7Wa+1vK+j9GsLP74bM6+jc1TVjwU=","TEPwg6WS5JoOv4zSC/xXKlfOmztIvRYMkMuuZUNjOBg=","1gJpjOs3AuL9pWq9V2FvEpHRjUeQ7v2gPNvD053ABCE=","svNXFsyKm4Z7GvkZuMlrjULJHhjHn6tqgZFhWhzb8DE=","fhP8QZ1wNZoHJ+WkkT5u1pnnxbOv6cejLbPFstmHrx4=","unKaJQQNw871d8RUM7I95QPiZSvB7cW7JYY3W8jLlw8=","OKyCLI8ED0RoYNeC7csQTDuohBRHuKwHtpl0WY8GuDo=","gqKPxBv+yWZocI8p/fb38YUnsqQWTazCGiiuJ/LSmUU=","Fu8Mg95EXLiF+NTkn7iK2pUAGMUV3aW+tDCdQARTiFU=","6or+Q1uM74y4eFv+lcwoNan/tYmtiW3fOgS2JBqs6nI=","SlJg29tdPYPCz8Ne+u9WgGRXdJTKcP96uoAK6aX8gw0=","vBDx7CTh7TfcnPNDNE5Kv1zPJztQUu2YagnGvbcAyDw=","MKnnKdbt0spB8ZcA0gysXZSfx7HsiTph9xr9uq75IXA=","bBSMNS8W7HhbkNH27AEXXUmG7+GGC3FP5Z1YkSvWUlQ=","1uDRxPDM3i4sfyXS3YgenREpWb/4Hl/Hw4DXMjHfEj0=","ti+2mAgJ77YUnplM2jh/q9a0WlrRsyKCO+PTAptnk0o=","qg3M6o2yKyrKHTVCj3649vKM9UhVljCTAHauPKR+I2k=","UmA5ljweYuSXBQNzMffNFe3lKiqswv8K+Gtg5IT5+B8=","oH0iw2PJoxMyGdbNBG0WiL2mSxDUOUq3GbpEWUsm3lw=","Bl3avmH4BcBUZq4E+TbplO7IKJnkECm3E1wJmbArkiU=","7IVlOJczZcrVe+lYuGjbGISY393jVWuuq9k9AasWunY="],"publicKey":"JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4="} [4834:4834:0126/140434.020272:VERBOSE1:refill_unblinded_tokens.cc(343)] Added 50 unblinded tokens, you now have 50 unblinded tokens [4834:4834:0126/140434.020481:VERBOSE1:refill_unblinded_tokens.cc(349)] Successfully refilled unblinded tokens ``` Verified tokens are different after connecting: ``` "unblinded_tokens": [{ "public_key": "JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4=", "unblinded_token": "9WZZg68JoBX/jQ4W5GKknJMlS0gwYSV85VFRLxxMKgHWWJJWoDUZAuEXsMaXNtUaijQpjxFgCp9DER8tMzSlVPJbGCgXd3UyNE9/CrRa3yFtOEEVxwYCX/Sj3hZ3DLlv" } ``` to: ``` "unblinded_tokens": [{ "public_key": "JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4=", "unblinded_token": "de+OMLSlOl4fvaQkhAD2mivMwYJUClskDmJ0Mc//iAxsEZSBDW7onkzT7u4mMGxXtGpxDic/A/mIozxAoRNEpsqmVkVsy5siCHZnXtxbf6ibXrqRTe9OIAJG/VU3JgwD" } ``` Verified unblinded payment tokens were removed: ``` "unblinded_payment_tokens": [{ "ad_type": "ad_notification", "confirmation_type": "view", "public_key": "+jeCSrAyjhhfy4GSXfXLDiG4EcVuAQ8tdR9fijTPGGQ=", "transaction_id": "a91fbabe-2ce8-4de2-bcbf-162ad3de2a51", "unblinded_token": "3nF/ndPdNYHWPjCLNV3E1CToMaH2shc1+7lBMHFtfk62azl6m3LBtEhqkoo5MryVjRCqkmn3PQyVixX84I9aXuwH7HWHcJkD1wiZoVKuqsK138SV0LvyrXPPFiqqP8IG" } ], ``` to ``` "unblinded_payment_tokens": [], ``` Verified ad was shown after connecting: ``` [4834:4834:0126/141106.910876:VERBOSE1:notification_ad.cc(135)] Opportunity arose to serve a notification ad [4834:4834:0126/141106.910876:VERBOSE1:notification_ad_serving.cc(131)] Found 1 eligible ads [4834:4834:0126/141106.910876:VERBOSE1:notification_ad_serving.cc(196)] Served notification ad: placementId: 18ac8fcc-4849-4241-b853-abce9b350b0e creativeInstanceId: 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed creativeSetId: 5f8c4787-8431-49a5-9d09-bba40f8ad5f4 campaignId: d1e25388-b362-4f30-bd4b-36b8205e59e5 advertiserId: a34de75d-5654-4331-8713-8f4d4e2b6bf7 segment: untargeted title: Vivamus sagittis lacus vel aug body: Duis mollis, est non commodo luctus, nisi erat porttitor lig targetUrl: https://www.apple.com/ [4834:4834:0126/141106.910876:VERBOSE6:ads_service_impl.cc(843)] Timeout notification ad with placement id 18ac8fcc-4849-4241-b853-abce9b350b0e in 120 s [4834:4834:0126/141106.910877:VERBOSE3:notification_ad_event_served.cc(19)] Served notification ad with placement id 18ac8fcc-4849-4241-b853-abce9b350b0e and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [4834:4834:0126/141106.928949:VERBOSE3:notification_ad_event_viewed.cc(19)] Viewed notification ad with placement id 18ac8fcc-4849-4241-b853-abce9b350b0e and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [4834:4834:0126/141106.958432:VERBOSE1:notification_ad_event_served.cc(28)] Successfully logged notification ad served event [4834:4834:0126/141106.991269:VERBOSE6:notification_ad_event_viewed.cc(28)] Successfully logged notification ad viewed event ``` Verified user was paid for the ad: ``` [4834:4834:0126/141127.491701:VERBOSE1:redeem_unblinded_token.cc(367)] Successfully redeemed unblinded token view confirmation for ad_notification with transaction id 9f9ab2ab-6b82-4596-a71d-ebbb927ad8cb and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [4834:4834:0126/141127.496168:VERBOSE1:confirmations.cc(222)] You have 1 unblinded payment tokens which will be redeemed ```

Update verified profile to 1.48.x

Verified unblinded tokens were refilled in 1.47.x: ``` [9247:9247:0126/145234.308446:VERBOSE1:refill_unblinded_tokens.cc(200)] OnGetSignedTokens [9247:9247:0126/145234.309582:VERBOSE6:refill_unblinded_tokens.cc(202)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v2/confirmation/token/9a2b8e60-0224-55c6-86e1-aecda66d7efe?nonce=d0989ec8-eef7-423f-a9d7-d3e697db6542 Response Status Code: 200 Response: {"batchProof":"5odQzFbzEkz2d3lvKxqAEVy9/pfdBHvOsTqaDs5Z9QCnLx9LKzSAPqH7SriuUpQJXHYl0zJlh2b6Y5j6EDUnBw==","signedTokens":["ekKdiiQ/NQDM/Coe+MmZ63qVH81tUC3yaNJkpKVwYBg=","tAQuCqU0w1pUorOKQGgI6sXW/9yMQy9lE1uApJOCiz4=","atGqEHNuzFiOemHTRXu6lQcn8kUdcHDGByL07yExe0o=","SKpHzIAgly4utYSKpLtUQTIuJ9NnttGFrrX/Krxl10U=","ps3emcWkKbH6ZC/Zk55ftCyCYWNz4HDm+7YT+1Nijx4=","4gjSDXzukVPzWcQd4LYhsNIXn/gzokW8iGYhlga80i0=","4iQHIfYHU1ndXpCZ3x8kiDqzCmcLgfVP92AMSRy9JUU=","DhQ/pR52gYlTwR86JJ6OYn/gG43oN4OJjiLF6xRC81w=","NkQF/U9UKWh2Mt9hKVXpU5c71krz8o+YXp7/1buchCk=","LlZSf9kIS7uPCEtgXUuY3w1dz1ptoY1ikXayozPNGRA=","ykSg0ypP9jIh8+gsdmziTyrB/HzYqHiVAGmxtat38ik=","oAX6b1b3ESQmQc5IVsA61X/nUc8tKNpGoOIZvE+zMzs=","vLb7bKdLF5XZu5G94d5bigJjEeBWHbncCYVOiwiuxzU=","GG1Iopcy9FeD2ag9EnobwmMQtTQmb5T6A7bJDNAteFc=","VolSyGSChKTRPGYi9FG5DVmR2vqzXPav+9klB0HmVUE=","RIwbtJUBiMKrdp55VHiVxtklJcHbUeKvN5DhXQ4RQC8=","Aoblpz/7btR5c+AA8GfkvHdpT4h1V4Sqg7Hi8EnPdQk=","+DOfhYV8565QKuhkNhYfgJO8l3SGtAzF7kRL/EXfOCc=","bhH4tutFtBV+ZtEUnSWVsR0JEctItXy3eIc5XIQB5nM=","ApdgQAGPxTw/g+jg0IxpmpTZD3BVa9Jpwdt/Pp9ysWE=","sD2MwPuROzvqESWbjm/YgddNVSzpuccGYanTEbzlkzw=","yMb7qIshMVZNEyOQINZAgtTlJySFRU/J8GbfqXzeLFg=","uOcbykHMkHBzA7v2JTHNDsV9YhsODvjp4F4ugt5s9g0=","WsYjzzURJldsawPx43/CUy6dN7r8IXRZIRNCHvVl+As=","XHjnhyAA7ML2AYJavU95RSjnPPFYZHze7BMKiKh0/QI=","JKryMZo9SeWNRDK8dK7Y/NchGiDsmGAuFyUcKCt2GQI=","YkHysrLJ37/iuGyZOYwFQjZqI6dcw+WYlfjDiwk/Exo=","KtsdV6eRHGYExVQcX5mA0kTSj5Ws2L78tWTBWoX94S8=","Gm4V7vKdeCHHbMc+UDlQXDVjv1FPMzCH5//pByEVPBA=","nKdKqEg/LjiaWHWTThlhf0trzIktDMDDkZL/mAfJC00=","FHwxziQBzs2rqfug2l7a6A15tBYR2uiR7ZAVYODNH0E=","TArsb6uQ0PhTYfvPOSBFhkKLwzskJUyRlcCzG/MGLwg=","rpB3vSDcOtaSZeKE5a5ICqwAFFs7UWI6KAzp08P1bGI=","igcvOBQII60/y9TinXCLnhl/VVI/lXmmuUSSTbGkjX0=","IHEfxuKVzYJC6pRbb7pYzT/6LpHrMmo21TKW8ofahWQ=","OqKB0+qeEfVFleujPSAyVxzjikCmkudz5TFjs8zPd3I=","IOWvRxOJ3AQal+ygUIG7eekTZk/S6+oV4W+d34i1pmo=","AohvqgH6eeGoow8FgUpgWySOHB4A7rQhO2KS41iTVSo=","3PMBj8vfgTndiS9aozxbvirhWdoocJuM1w9G0O8oiTI=","4t0TtjOPRWCRMzJxZrasS736ci/rg7/d8qE0DWuzVho=","qIOm9A9KKJFnoPBMhvucy3fRm0yM9AF3jAP+o4dhLxU=","iEpyIf3sFrEd+r466Do9Nx6ECfVBzFpsebsNIUR73Ts=","dNvagVHmWw3hsN5uF8JGhW3Q2GOgT2yzxbCSXyOx7Qk=","wkFFT76FII5E40j9nHYrnNNBMJ6BeaC9Mc60HmYh1mM=","8PT7wMGSseKlC1rDyQW2AOBqGfsDpStz3uxuaBezJSg=","Wjp5+e1ZYy3XIX9UyqdxwpBE9y5GBaG5Bg1vDi/wql4=","4jjemWAq8v9JkRMxQVQbY2BzG8ZsG8vMN6lgatApS2c=","mN2wRmr4sy6gwk+wipFuvRw2kX5kG4LXKArYVTMluXk=","ovghmA1chzkkpZhLtCrm6tLGstIdJ8O2JlYm1NvEc1w=","Qok8ZyXIyX0aVJk2vx2x/Pt909crLWudS4ZobcosBnA="],"publicKey":"JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4="} [9247:9247:0126/145234.388878:VERBOSE1:refill_unblinded_tokens.cc(343)] Added 50 unblinded tokens, you now have 50 unblinded tokens [9247:9247:0126/145234.391231:VERBOSE1:refill_unblinded_tokens.cc(349)] Successfully refilled unblinded tokens ``` Verified ad was shown in 1.47.x ``` [9247:9247:0126/145448.433095:VERBOSE1:eligible_notification_ads_v1.cc(38)] Get eligible notification ads: [9247:9247:0126/145448.437608:VERBOSE1:eligible_notification_ads_v1.cc(196)] Get eligible ads for untargeted segment [9247:9247:0126/145448.465676:VERBOSE2:priority.h(35)] 11 ads with a priority of 1 in bucket 1 [9247:9247:0126/145448.466116:VERBOSE1:eligible_notification_ads_v1.cc(229)] 11 eligible ads out of 11 ads for untargeted segment [9247:9247:0126/145448.466298:VERBOSE1:notification_ad.cc(135)] Opportunity arose to serve a notification ad [9247:9247:0126/145448.466519:VERBOSE1:notification_ad_serving.cc(131)] Found 11 eligible ads [9247:9247:0126/145448.466960:VERBOSE1:notification_ad_serving.cc(196)] Served notification ad: placementId: 5516e71d-200b-4463-9aaf-0754c8a31b96 creativeInstanceId: c6a6b939-4167-41fb-8a84-1edde6c12250 creativeSetId: 45ea5952-37ca-41f0-88c2-4b546b0e6f4b campaignId: 1c1ac828-db13-49bb-9128-090132044b7f advertiserId: ecbcc833-8b1d-4867-98f7-ad2341396ce8 segment: untargeted title: Ad8 body: Ad8 targetUrl: https://brave.com/ [9247:9247:0126/145448.467547:VERBOSE1:ads_service_impl.cc(843)] Timeout notification ad with placement id 5516e71d-200b-4463-9aaf-0754c8a31b96 in 120 s [9247:9247:0126/145448.467752:VERBOSE3:notification_ad_event_served.cc(19)] Served notification ad with placement id 5516e71d-200b-4463-9aaf-0754c8a31b96 and creative instance id c6a6b939-4167-41fb-8a84-1edde6c12250 [9247:9247:0126/145448.469917:VERBOSE3:notification_ad_event_viewed.cc(19)] Viewed notification ad with placement id 5516e71d-200b-4463-9aaf-0754c8a31b96 and creative instance id c6a6b939-4167-41fb-8a84-1edde6c12250 [9247:9247:0126/145448.505039:VERBOSE1:notification_ad_event_served.cc(28)] Successfully logged notification ad served event [9247:9247:0126/145448.526861:VERBOSE6:notification_ad_event_viewed.cc(28)] Successfully logged notification ad viewed event ``` Verified user was paid for the ad 1.47.x ``` [9247:9247:0126/145458.258609:VERBOSE1:redeem_unblinded_token.cc(367)] Successfully redeemed unblinded token view confirmation for ad_notification with transaction id 80964c05-f5b4-4bc2-bdb3-f4ad1c6cc0d5 and creative instance id c6a6b939-4167-41fb-8a84-1edde6c12250 [9247:9247:0126/145458.263327:VERBOSE1:confirmations.cc(222)] You have 1 unblinded payment tokens which will be redeemed in 6 hours, 2 minutes, 49 seconds at 20:57:47.443 ``` Verified tokens were refilled after update to 1.48.x: ``` [9769:9769:0126/145921.526961:VERBOSE1:refill_unblinded_tokens.cc(200)] OnGetSignedTokens [9769:9769:0126/145921.527198:VERBOSE6:refill_unblinded_tokens.cc(202)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/token/9a2b8e60-0224-55c6-86e1-aecda66d7efe?nonce=060db8e8-81e1-4d4c-89d4-45ee3dc5a25f Response Status Code: 200 Response: {"batchProof":"rJXbFq1yicI9EyzWbXp91h4F4RC0Ws72PkzZP5SrCQJuWsjT8nnGsZnXDqJnJsNnb3kJ0FPlxQm8rvIXB6GXDg==","signedTokens":["WFU4NcbTw6hqaq2kBwVlghGBr43D37S6OvfWsrZgaD8=","iJjC4XxoBi+rcrFdAL5g4W+KYoek9aaLr6XbFckbcFQ=","FnV/HxnaFBup5XIYjZvkAw15h4KdKyqperezWLRhzgU=","uNCJ+rCpaSGpp8ONzr/W15YiWlvSNJJt2LQboPvrPHk=","oLT3yqoSH99Z1sEZ9FBXwCkU8kZI7JMmRrzxr7+HnxY=","agJPZ4F+iTTkClGGFNRHjagW9mpPFdOrMsZzhmNQMWM=","/nr6z4wcdWvOo//KtyOGORz6NKxiwryakKi1oXitUgQ=","zru3pv29OUeHEAYhUCrb3rIh3QOGi5S0TuWyvZkWGlE=","fJyApdWorGG69TWRQoDMO9h5QwPcTP7a6KInzLFErXs=","PrREX9BUC7/bWNPT3amUHJe24oW7QNPEml1qJGsOoGk=","HuG/2nOQcmtcvrAynLncPYvE2MGBW3XLkFzDjPP1fl0=","chOJafwfNH+aQ1xy9q5cAkQ/zcQOuabcEdu3tNL6Zxw=","GNDbVfoNRQGBZsjS6l8jEcF1FXOL5iZ5rXpYl+T9vFs=","nEiyyaapf35nerumovC0k8dHSaAQaF6X7GOtTEaHOwU=","VKHeTyJyFVJR1f18/2YjN8oxH3KXBsrnRGcMbJ28VQg=","orYynzYaHjxf5rQfUF4kjWsz5fwuClFKRciruRWNBlc=","RmoENzo45MlxonUs0788lLRpV4qkFuT5YFy3oMJtDDg=","oPI8LkJQwhpbHF39BYiBiknnxa8ulHXVKubr3Iza1WU=","1oXAArD6E235JRd6o8Q6Lnp9ApJpBa1Qe7WQl2/pQW0=","YvgFG0kXDeeLsdqYD8stKGcUcNXfbz0iG8Bm3ag5lBE=","AlgyxJG8QvrLftezxNzQpcCpkoSBLZs2Gj6nTtTSOgE=","tP6bKMe/B7sx8OoQCaM8ya1AVMyNu17iCIwt1x1sj18=","WOtIiEWDMrjy4dCji/V9f6Qwc9DzSQ3kjFMdbWofTF0=","qkUcdeh1v9PRla562aKfYc0Sb+BXxH41ZcpovcTsHF4=","+nzcoEwH3Mjb9+oD1HMSx6q8JccFQcr36lw7yLizV0U=","sKzykaFXKQ7BVZCYwgfXH6pQiGhwNWpZIrXou5sf8Vo=","LgU4pv09w/dzrsyNkluuqLffXE1d4dOoWtm2gg20Tx4=","uMdJwakg5irSDc6GO4vm28GHFLPDu5GKZqWwmj46xSk=","5FRIA6BaqEZhX+LLRV0rBRdWX6tKHpNbpkAePhA1gR0=","6Owtw+bJe4amx6kPObC4G09lM+T9pwzyrVDguVLl2iE=","rPbiDzuXx57mO6gqaz+OGWWTGd3YMS/L9WZrtYwW+SM=","TNgxVSXif/setq7jGuka7kezVmYlfTEnwxUoAyNU9zg=","mhtELLFAErBCEj1m4jLCD045wcdxhc0RpA14fvG84n8=","/gU1jNSpMZjA4vFyqmp6MZzzb1UwVxwOE0WcD0aRNyY=","AKgFE3r/QuRg4lJqXu1GYJtsERmLf+nXI7Tu/4bl63w=","fnsqYFmbV1aXzxQk9BTcFxNz62AbYmKrvTS3EOVgaxQ=","uNLkRX6sI04Z85PcCV4lC4Xz3Jpc9obXj84NlsvlGxs=","bpNT0kYRCaN0CxehZhHZJp/3yzfASmAFDTdwA9YwWVs=","spFYjYCbPW41PX30v8Up1oLt5em/GnF/svp69dlNHlE=","mn+ZTXu5QKE1Bq+NnWl45Iz9GAjaNJomgsGUiQDgkQo=","DBjcpdH7BOb7NombsCMDhhLvYyJeYfpgyMe/qZgdnno=","Zpajo5xhUGEvW6SnOY0eG2eySuLjonXUec9uU6HXsmY=","dLOKslI29dTbgSxz98mNuK0Jx3RijIIii7xWAcb8Eno=","VAAkGEJCcRg4OmjQx56mp97MZWL8TOtLyXQi53LFYWA=","hCqc542eJ2SH8aaJWlY/Jw03f8/2JG3FfLy9CbeN4Es=","vsyLJd1fAJco5VfUorKf2I3UqRpDK4a0tY2oS1gvmVw=","MIlAlD6rhTpje6TQgQdA2x/pORAyWaj/OiQt3HpMuwM=","GghpMTDMqvGfB5zAHy+Svhr3gXDb9IAdpZ6dJSnMcjY=","MDLwiJGE2jnTLmFumeJwHM4DNQoJF4Hzzai+eG6Akkk=","gqs2/u20slmszar5lFY56ctyoWvUuSsPPN7tLWeMFlE="],"publicKey":"JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4="} [9769:9769:0126/145921.554865:VERBOSE1:refill_unblinded_tokens.cc(343)] Added 50 unblinded tokens, you now have 50 unblinded tokens [9769:9769:0126/145921.555432:VERBOSE1:refill_unblinded_tokens.cc(349)] Successfully refilled unblinded tokens ``` Verified tokens are different after connecting: ``` "unblinded_tokens": [{ "public_key": "JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4=", "unblinded_token": "5e45HPHvky+W3iXtL7SU8SAav2lgIqpRmX0FAdtatc3mySybJiIxXMiGS5p2OlTXZgTzrTCxbHCqDYJa115QfdhFtYQsXIKuqVrbESPCDU6MpZ6muLKh/c/NTk4fHls+" } ``` to: ``` "unblinded_tokens": [{ "public_key": "JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4=", "unblinded_token": "BdEg3YQ0cNAYOeWKocyi5/+0h1XsAdeqcyd1wQK4/XZwwoyzQVRu4Oy7aoiiN+34ux4wwak1bZDNBEmwe128TEhFUfStA8oOtZTDoyIq8+iBCeCj8+rtQY2PBUd/JOkq" } ``` Verified unblinded payment tokens were removed: ``` "unblinded_payment_tokens": [{ "ad_type": "ad_notification", "confirmation_type": "view", "public_key": "+jeCSrAyjhhfy4GSXfXLDiG4EcVuAQ8tdR9fijTPGGQ=", "transaction_id": "80964c05-f5b4-4bc2-bdb3-f4ad1c6cc0d5", "unblinded_token": "dTYQz0ip/5g5OH2NQsHTgxRgbg3MYB68mlCu8xA/jx+bi0OgL5treaFzBvWj4inbMhO7zU35OStpytWiCMhHV57un2iTCbBYRu/IHCLewcWzLXOco33DubuVdxQex0sk" } ], ``` to ``` "unblinded_payment_tokens": [], ``` Verified ad was shown after connecting: ``` [9769:9769:0126/150416.770595:VERBOSE1:eligible_notification_ads_v1.cc(229)] 1 eligible ads out of 11 ads for untargeted segment [9769:9769:0126/150416.770661:VERBOSE1:notification_ad.cc(135)] Opportunity arose to serve a notification ad [9769:9769:0126/150416.771582:VERBOSE1:notification_ad_serving.cc(131)] Found 1 eligible ads [9769:9769:0126/150416.772965:VERBOSE1:notification_ad_serving.cc(196)] Served notification ad: placementId: ae94e2a3-b400-4a53-ab4f-39d18bc075eb creativeInstanceId: 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed creativeSetId: 5f8c4787-8431-49a5-9d09-bba40f8ad5f4 campaignId: d1e25388-b362-4f30-bd4b-36b8205e59e5 advertiserId: a34de75d-5654-4331-8713-8f4d4e2b6bf7 segment: untargeted title: Vivamus sagittis lacus vel aug body: Duis mollis, est non commodo luctus, nisi erat porttitor lig targetUrl: https://www.apple.com/ [9769:9769:0126/150416.773316:VERBOSE6:ads_service_impl.cc(843)] Timeout notification ad with placement id ae94e2a3-b400-4a53-ab4f-39d18bc075eb in 120 s [9769:9769:0126/150416.773368:VERBOSE3:notification_ad_event_served.cc(19)] Served notification ad with placement id ae94e2a3-b400-4a53-ab4f-39d18bc075eb and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [9769:9769:0126/150416.774752:VERBOSE3:notification_ad_event_viewed.cc(19)] Viewed notification ad with placement id ae94e2a3-b400-4a53-ab4f-39d18bc075eb and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [9769:9769:0126/150416.800787:VERBOSE1:notification_ad_event_served.cc(28)] Successfully logged notification ad served event [9769:9769:0126/150416.831257:VERBOSE6:notification_ad_event_viewed.cc(28)] Successfully logged notification ad viewed event ``` Verified user was paid for the ad: ``` [9769:9769:0126/150423.574748:VERBOSE1:redeem_unblinded_token.cc(367)] Successfully redeemed unblinded token view confirmation for ad_notification with transaction id 3a9ede18-41a4-4a46-b4e3-f24d2a471318 and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [9769:9769:0126/150423.580933:VERBOSE1:confirmations.cc(222)] You have 1 unblinded payment tokens which will be redeemed in 5 hours, 53 minutes, 24 seconds at 20:57:47.443 ```

Clean profile 1.48.x

Verified unblinded tokens were refilled in 1.48.x when not connected: ``` [6731:6731:0126/142517.507181:VERBOSE1:refill_unblinded_tokens.cc(200)] OnGetSignedTokens [6731:6731:0126/142517.507558:VERBOSE6:refill_unblinded_tokens.cc(202)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/token/e7a44e2a-5e9d-5987-94ce-6c92278fb0b3?nonce=08b496b4-5a6a-41ee-a831-1205ff776e62 Response Status Code: 200 Response: {"batchProof":"8FXm7PO8zRMWYefe6NHOFZoiigAcPZOYtnMCwKu9gAGsqhfWfqsSjvsmwndqITS2fesHXb8LmkmQf8/yyYZmAw==","signedTokens":["7hdoQcQXE+VNw4mfuWyDbwD7PNztlKv+trV8wfer3Go=","HCTwmshMDEBqPhnrRWeZGcbortfxWXv6fYCfEia0pBQ=","1K07WbTo/ZgoVUJSitBXnp4MCkepp4Gj5quE7ercPQA=","eoNhbHEh3UbM8E8EaZ7+77vPfxbInE7PT5ggLQ28dXM=","SIuF0azOzBi5s2AfbwWx5ryIaZesDJj3JZI9+Qh/Azw=","Or4IotlbELurYzwBA/AG0R3mtqMqAUn0sDYZCYtWFD4=","kj4Hcc+hCN5tPaqfFj5nrmLx1bfuN3jzqiWS+AFWpDU=","yjEfMaTT9Pp/9FqBO1ByKICh/NAaBr2Lcg+0L4Swtis=","todNvMV2HXTj+01tSyu7Ongj9nuEsjZiBkQF0hVAKDA=","2FdvW0LXN1Uc7/DX4etHVxIfL5wMAijG45N5cxxf3VQ=","ROhzGCfbpuFNjaTtB2H2s/YWZmJOfQgT9AYGbGjE33Q=","8MGuiu0HAOzdnHAN41RJvHK2Zmr+duxM9UmlR0v0SVw=","6JgEiIpBKxfBRaw7VOfSpJP5X0qZ4of7I5oGJ2bqlxQ=","DP+NbBUNJhNDHy+oI6DQYXBAu5KC4kCnY6q8RwYt1F4=","SnnwzP3nigMwXlOoa3+mT3Fua9qXSoYDjsBPWgnoM3c=","9AEXA3vXR2QXgu9n433Giu033TGGz2X47HVcYrJb83g=","7ErlKUTsZY5LvBC0HdQRJ9hok/4mcArX0ugIst0oZgo=","OAZ+9U8HFdNNtbioKKRgRVr0Xt/dJ4bylveW1DJA0Do=","+IwqqSz3JzapTUe5tqhN7ka7Kuk9OlRXrK/U3h80e3k=","QiBLcF6gLzGEUbO73FS1+dPYmpm+anDMr3FJWrd+iWc=","KEqkNRjCo3t6UNNTfOFDg7FZpISZOV2akoFN0FyOWw0=","vFyiv/v7BBvFzr7px7wFTwf2jb9LC0a6L55C+U+IyWg=","1G9a5eq4IMcId86fg/KZ9reKlcX3ZtmondoECul4G1M=","AJko+qUoQrLc6t/fTY51NsgC8XMgMvcODSPG+NAxA3I=","0sA94/8GxEjat1eo6d0YTpiMM++LTlld3H/7IeKu5C4=","Xmifx5xr7T9n4pzTeZ/3Cdx1Krm6FQAg5z6NlGPwNRU=","ckNO7M5JVpEJNmFxLYIUf0vUMcOHvXTNf1eyxe0jYHg=","xDRIfUi+941qQ0tC99Fqbc+kciIX8COru79gCB5bpWQ=","Xh+lw3xzoCoejrIdnzusrbnGX+EhR9seZz0XZQTRTkw=","WtbctSJUpL3AzJmyNU94uqWTVF5ZwUkDe7/ziE021n4=","8nME6/HYfeVJjDd0wKOt0ceRKYwnoi+9qbwKAQHLs00=","rlIh6/gxhMPBq+NFKM+as1qT4O0EDKSnHhGVyoIqq18=","AFoAfyUd4QDDGnzRLFBUBQa6QAKYkTjS7ud7jJPz3yQ=","tKMbHCT/F22hMKbn3dBabZZVlYI+DugvtXYJ2E4P9j4=","LA5DlsNwO9xfql06+JvzNUwPQuRHXJDk1wLQ93dJxiM=","wm3IOZbiTCS0Pe+nWgWpnljOLQed9k9ZYUwcAHobR3w=","gKNjkGO03hsLSBKDWOZ7lpw+DbRmABY0ZFnTxo9hhXc=","hp1+dv1YwA9uI+ihHJFZyB+qbtXA8Smq4c/vgUhEaXU=","ysrqZ3tSaeKFT06GhWiJSiAyls/l5GBjZyv5+Vz8aQo=","wJ9cik8gQz2d3mCsFces0c2A1Ke0Ii4w2aBHM6IwSz4=","WvVt6gq8tBcWkKUE6kyG+RD/Azh7W2TRytZy431Pmjc=","rNkphFlDxoyxcnJRIW2Qzb+4QL5UZzcq4nEgWg08Kwo=","mG11bhsVzvPcUeyBj2fteH8TxQEtZ89XA93+YKrGTkI=","UEP8AMKFGwJsFikKppVFbY9FWtIhkU6/kC6sy0eW+xA=","JvQfwxmfGFsomdLsuQhWp0rvA79JmqJ0VWYsEYjDNWA=","ZCi5XNKIQ6xVCKf9BICEI8h1/7WZlwxkXZc/okGm5Go=","HJU9YBHCq7PS5O8xZbiTkRon4M7gJXl6YxQrM6Ag+FA=","DBelHrLZMmdRjkbF7nVmfhK2amYjFHmOHcdrEJGdNi0=","Lrk5Z1l2wvsnGvysb5Ny9yvY86c/vVlz9l0z46Bx7lw=","gp2LsKFUkPpW0YFn/0W0joVez/8pm0Q0we63QbrKRhk="],"publicKey":"JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4="} [6731:6731:0126/142517.538091:VERBOSE1:refill_unblinded_tokens.cc(343)] Added 50 unblinded tokens, you now have 50 unblinded tokens [6731:6731:0126/142517.538289:VERBOSE1:refill_unblinded_tokens.cc(349)] Successfully refilled unblinded tokens ``` Verified ad was shown when not connected ``` [6731:6731:0126/142613.253011:VERBOSE1:eligible_notification_ads_v1.cc(38)] Get eligible notification ads: [6731:6731:0126/142613.257041:VERBOSE1:eligible_notification_ads_v1.cc(196)] Get eligible ads for untargeted segment [6731:6731:0126/142613.307258:VERBOSE2:priority.h(35)] 11 ads with a priority of 1 in bucket 1 [6731:6731:0126/142613.308007:VERBOSE1:eligible_notification_ads_v1.cc(229)] 11 eligible ads out of 11 ads for untargeted segment [6731:6731:0126/142613.308978:VERBOSE1:notification_ad.cc(135)] Opportunity arose to serve a notification ad [6731:6731:0126/142613.309954:VERBOSE1:notification_ad_serving.cc(131)] Found 11 eligible ads [6731:6731:0126/142613.310695:VERBOSE1:notification_ad_serving.cc(196)] Served notification ad: placementId: 223d142e-bba8-4773-a2e4-aa73216710d7 creativeInstanceId: 4cda5cb7-c4f8-4cbc-8898-58de12ece304 creativeSetId: 45ea5952-37ca-41f0-88c2-4b546b0e6f4b campaignId: 1c1ac828-db13-49bb-9128-090132044b7f advertiserId: ecbcc833-8b1d-4867-98f7-ad2341396ce8 segment: untargeted title: Ad5 body: Ad5 targetUrl: https://brave.com/ [6731:6731:0126/142613.321535:VERBOSE6:ads_service_impl.cc(843)] Timeout notification ad with placement id 223d142e-bba8-4773-a2e4-aa73216710d7 in 120 s [6731:6731:0126/142613.321782:VERBOSE3:notification_ad_event_served.cc(19)] Served notification ad with placement id 223d142e-bba8-4773-a2e4-aa73216710d7 and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [6731:6731:0126/142613.327346:VERBOSE3:notification_ad_event_viewed.cc(19)] Viewed notification ad with placement id 223d142e-bba8-4773-a2e4-aa73216710d7 and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [6731:6731:0126/142613.360286:VERBOSE1:notification_ad_event_served.cc(28)] Successfully logged notification ad served event [6731:6731:0126/142613.390522:VERBOSE6:notification_ad_event_viewed.cc(28)] Successfully logged notification ad viewed event ``` Verified user was paid for the ad ``` [6731:6731:0126/142628.775622:VERBOSE1:redeem_unblinded_token.cc(367)] Successfully redeemed unblinded token view confirmation for ad_notification with transaction id 73013741-ee90-4f09-bf15-ddf24f7b8290 and creative instance id 4cda5cb7-c4f8-4cbc-8898-58de12ece304 [6731:6731:0126/142628.781752:VERBOSE1:confirmations.cc(222)] You have 1 unblinded payment tokens which will be redeemed in 18 hours, 43 minutes, 30 seconds at 09:09:59.224 ``` Verified tokens were refilled after connecting to uphold: ``` [7093:7093:0126/143340.876310:VERBOSE1:refill_unblinded_tokens.cc(200)] OnGetSignedTokens [7093:7093:0126/143340.876804:VERBOSE6:refill_unblinded_tokens.cc(202)] URL Response: URL: https://mywallet.ads.bravesoftware.com/v3/confirmation/token/e7a44e2a-5e9d-5987-94ce-6c92278fb0b3?nonce=33ffb2ec-76ec-4f6a-8acd-9ab6947fe98a Response Status Code: 200 Response: {"batchProof":"ntnQTkPV+lOoHDd6/BZu8JdehLUHUhVUWjsyN2cqpgeBoa+9j06SWq/IA/s98mt4KhrQjaAfFWpHNg3e2wnmDg==","signedTokens":["XPpdQXMglCJKCOIHuBW1RCJqR/Nj/qCZIOmowMF0CQ4=","nEmcBtWsvA3HbSi1XM3Ft8jCDElnscnhJ9ETGThPsW0=","uqIMufyJ2UnIKHbG9xfFmtlrIdFhuK8T0ChhjF3TFiI=","wqsYWdOUTZYdePLDODZZgcI4JhpteBytFD6aKztzqG8=","aPOyFPDnnqVX5VRAr1BMm9rVJnqm8M72OSo15t3eMiI=","MJose9mnLARnd6Oa1NXRFQeOaCK0vjoyued4ZHoH0HM=","foMUe+QRFFZPFdBU2TqsXSpgF/wvE8GeTHMj4vC2Wk0=","iNwC0+fJbzxN5J75hxh5ccIEDRfl2HvTaqKYJFbfsTo=","oD7xFuWmo10atC8uavUL37LRyj2uxkhBS84Pb5bMy2I=","1OVi8hhp/0O23Wam7AQxXHL774H0FfdD/PlxszO49X8=","Wpg3D91LR1Jmz06OKDwe01N8RpKhBJAjfW9Fg4lyPn4=","EoQvSK22TlUHF4AcfdhAzwwRNHJ6MJRNvudhZ0sQcEE=","wsaLHKXZJIOHC0SiLtY3guPcJ2zAiqKu/nfilwSj3E0=","yK3fBxtWIX0zelw0sPOBbRP0d9wNv4HjI6tVGvtDpCY=","eIhvfKQeEcDktcpiHFcp1EFIyWpF1mnUqH7hWrNLbCI=","yHQmv3gDZJKnvHIyv/Da8/yXxdPMP12vWKSPwKus5Cw=","8C702tATAMvhDZ50lsP3L/LFKxjoZDjMvpWgeV+t/lA=","HnQGzwN/6rhz/WbBIPQuWeQunHL3cFxaJH0yydDUJRQ=","3LEbtjgJtiuiOXO9JVk+hx4cb+iAltmJJPDoI37oxW0=","GLAhqwJ7Sd7kXCYUTEjfdEPg+XsodixkCNysL0ZIRDE=","MObwCrB2c7aGXsg5cHfRMHDT6FvSdJALPgpbBPwjt10=","3HjYtQ4WT8NczH4ERpuLzNaC2GN0JuGP3ZjVAD7P7Ew=","eqtW5mFyHVt6PqR0BWu/inawg9bKw3ILcCW9nnFdlyQ=","pIL+pU+vcgez09GA2fZN4Q8demlndu862z5fYqK5K1w=","AjG7pf8qS9ViI7QFuvGox+pS+kHCiQVkX+/NDJm/BGY=","IhtxQoSUBYGpMRWr47aS44T3frP0D6WGjziBOWQknUg=","OPBVBvUIk68Zo5OtaZYKjxMN7GAqU0abteTSzyCu5xQ=","3AHGYBwaJQQPutXgZXmE4/E8SS0+82TI3BR0YTAMCEU=","tiOWjycJcJkrN39DGyoBjHChVd1gm579OJGn27PkvD8=","TPp8TyCAo1jcr/3QM0DJ1FrXQ+Dnlx4iC1zQO2kohU8=","NmOFGebIgE1qJq7e96kc1LTbIJ2XQtJXgvfQMMXZ/jY=","sJSvPD1kxNukWSh0AiukziIRANh74R69xcEwuYjJmks=","rg2WgGjqE7sTen62cNG71KC6PeSmKL2a+fN8KHEdXE4=","WOqPGbYAX52q/mbgz4O1l8xpDIrT3tFyKmzRdi8MEjc=","loy4r4wuu8rktIQbZywbhed0fZcb0p6P7QHgLuDAPkw=","AKnNBUpxJy4gZqKWnt81oBrR2T54OOxojbNFTaXajA0=","UP/iEREPMcRTIJmMNJqXtWT6d/XRebf68OeMF0p+Gks=","wgxpcOUJ+Ra3P6zi3wdUThK7mH8qUeaNb0lejI+n+Qw=","IBagZvrw5eyH3AD/ljPogra2GHC5k5pkRLgG1ttk/Ek=","ZB6NVBgD0tD9UiUExR8MYM6bVqUbJs5vHG+roc54dhU=","ljpOfn6UVLE+E3jAOxkxcVNeXbBYjq9gPkk6siS1WwI=","tELvcDl3TM840h2aplh2pQox/l3aO85iemDlCQZbUXs=","1v6mJ7fWqswHsgu+z6e+/J9VmRB/iCxb+H0/P42k7VM=","CobO5uKNsEjgHcURVgi9jp1bEJj5S5bxzwGNCYPO/BA=","+gzMRGGjK0lpq924N3087yMEvW8+kUe7RC54RKmW3UQ=","5O8JumUOS5/u6B5UxD0pQh43pB/U9s6HdNqFht3kn2Y=","YO4zSdo4Xt5uwfs13lmDuBShZBN6Urt+hvHUuMFesyk=","OkI42yDP7PV1ZCpXFpQHIdJ6lPD0z0Xg6zStTX1PgmQ=","FkA2K2aJhFXZwwT1Ih1Q5XGtD5lsFhODZqEQSyG1lhw=","fC5QU6wBKCbNb9uh53eMFrKQNG6UaSgLVQTAMB7Crgg="],"publicKey":"JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4="} [7093:7093:0126/143340.894072:VERBOSE1:refill_unblinded_tokens.cc(343)] Added 50 unblinded tokens, you now have 50 unblinded tokens [7093:7093:0126/143340.894072:VERBOSE1:refill_unblinded_tokens.cc(349)] Successfully refilled unblinded tokens ``` Verified tokens are different after connecting: ``` "unblinded_tokens": [{ "public_key": "JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4=", "unblinded_token": "Q2HjPDYCiviZZHuS+2m0LO6SIWQUbokF6P5kRgbQK4qNfnVGVa4CxZxN4hLe2fiUSlmMdy+B3BaBjHvARmF/tnK0yeE15KZlCzluN/O/qhcMDLEhsfVhV24tl88DcBZV" } ``` to: ``` "unblinded_tokens": [{ "public_key": "JDBWY590tEpD7gWjENydNI3un3MzxJeHsfnrhp+esC4=", "unblinded_token": "7CJyUWzpUG7BskfuI04iM8VmRg9bCp2FEaUOtBoAmi9KcQaRM86wFyfwUR8ccoqi3bj7Qg20MV7LSAN7ASppFCyUZh1x1LFNEqFDg5Yo46If7DLbjvFRKEvTA0u8fw9T" } ``` Verified unblinded payment tokens were removed: ``` "unblinded_payment_tokens": [{ "ad_type": "ad_notification", "confirmation_type": "view", "public_key": "+jeCSrAyjhhfy4GSXfXLDiG4EcVuAQ8tdR9fijTPGGQ=", "transaction_id": "73013741-ee90-4f09-bf15-ddf24f7b8290", "unblinded_token": "8YuC2bGBU/e0cns5URLaRSfaZ7OX2iddjzq3QJ7i7aHntuUNXXp5WgFzQOxvAs2V7aDlgOsfDOrZ61RojENuOz4DJUdFtIWOWvPge1sIQoj2ZJSbrDQLGFDYJTVQR0gO" } ] ``` to ``` "unblinded_payment_tokens": [], ``` Verified ad was shown after connecting: ``` [7093:7093:0126/143834.570337:VERBOSE1:eligible_notification_ads_v1.cc(229)] 1 eligible ads out of 11 ads for untargeted segment [7093:7093:0126/143834.571463:VERBOSE1:notification_ad.cc(135)] Opportunity arose to serve a notification ad [7093:7093:0126/143834.574668:VERBOSE1:notification_ad_serving.cc(131)] Found 1 eligible ads [7093:7093:0126/143834.575802:VERBOSE1:notification_ad_serving.cc(196)] Served notification ad: placementId: 176089b1-2e34-4447-af89-27fc72016a80 creativeInstanceId: 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed creativeSetId: 5f8c4787-8431-49a5-9d09-bba40f8ad5f4 campaignId: d1e25388-b362-4f30-bd4b-36b8205e59e5 advertiserId: a34de75d-5654-4331-8713-8f4d4e2b6bf7 segment: untargeted title: Vivamus sagittis lacus vel aug body: Duis mollis, est non commodo luctus, nisi erat porttitor lig targetUrl: https://www.apple.com/ [7093:7093:0126/143834.582731:VERBOSE6:ads_service_impl.cc(843)] Timeout notification ad with placement id 176089b1-2e34-4447-af89-27fc72016a80 in 120 s [7093:7093:0126/143834.599733:VERBOSE3:notification_ad_event_served.cc(19)] Served notification ad with placement id 176089b1-2e34-4447-af89-27fc72016a80 and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [7093:7093:0126/143834.601310:VERBOSE3:notification_ad_event_viewed.cc(19)] Viewed notification ad with placement id 176089b1-2e34-4447-af89-27fc72016a80 and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [7093:7093:0126/143834.628447:VERBOSE1:notification_ad_event_served.cc(28)] Successfully logged notification ad served event [7093:7093:0126/143834.666276:VERBOSE6:notification_ad_event_viewed.cc(28)] Successfully logged notification ad viewed event ``` Verified user was paid for the ad: ``` [7093:7093:0126/143834.666276:VERBOSE1:redeem_unblinded_token.cc(367)] Successfully redeemed unblinded token view confirmation for ad_notification with transaction id 9f9ab2ab-6b82-4596-a71d-ebbb927ad8cb and creative instance id 4cda3ae7-1f70-4bca-b361-ca01d6a8f1ed [7093:7093:0126/143834.996276:VERBOSE1:confirmations.cc(222)] You have 1 unblinded payment tokens which will be redeemed ```

Regression ads testing

Will add testing notes soon