Skip to content

Cherry-picking commits from main to release/7.78.0 for PR #30267#30275

Closed
runway-github[bot] wants to merge 1 commit into
release/7.78.0from
runway-cherry-pick-7.78.0-1778873707
Closed

Cherry-picking commits from main to release/7.78.0 for PR #30267#30275
runway-github[bot] wants to merge 1 commit into
release/7.78.0from
runway-cherry-pick-7.78.0-1778873707

Conversation

@runway-github
Copy link
Copy Markdown
Contributor

@runway-github runway-github Bot commented May 15, 2026

Description

Fixes the first-deposit flow for new Predict users whose Polymarket
deposit wallet has been created but is not fully registered yet.

Polymarket advised that STATE_MINED can happen before the wallet is
usable on their side, so the deposit wallet relayer polling now treats
only STATE_CONFIRMED as a successful completion state. This keeps
polling through mined responses until Polymarket confirms the wallet,
preventing the follow-up batch transaction from failing with "wallet is
not registered".

Changelog

CHANGELOG entry: Fixed a bug that caused a user's first Predict deposit
to fail while their deposit wallet was still registering.

Related issues

Fixes: PRED-886

Manual testing steps

Feature: Predict first deposit wallet registration

  Scenario: user makes their first Predict deposit
    Given a new Predict user does not have a registered Polymarket deposit wallet

    When user starts their first deposit
    Then the app creates the deposit wallet
    And waits until the relayer reports STATE_CONFIRMED
    And proceeds with the wallet batch transaction without a "wallet is not registered" error

Screenshots/Recordings

N/A - logic-only relayer polling change.

Before

N/A

After

N/A

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
  • Use these power-user
    SRPs

    to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production
    performance metrics
  • See trace() for usage and
    addToken
    for an example

For performance guidelines and tooling, see the Performance
Guide
.

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the
    app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described
    in the ticket it closes and includes the necessary testing evidence such
    as recordings and or screenshots.

Testing

  • yarn jest app/components/UI/Predict/providers/polymarket/depositWallet.test.ts --runInBand

Note

Medium Risk
Changes deposit-wallet relayer polling completion criteria, which can
affect first-deposit transaction flow timing and success. Low code
surface area but touches user-critical deposit execution behavior.

Overview
Fixes Predict first-deposit failures by tightening Polymarket relayer
success detection: waitForDepositWalletTransaction now treats only
STATE_CONFIRMED (not STATE_MINED) as a completion state before
proceeding.

Updates the related unit test to expect continued polling through
STATE_MINED/no-hash responses until a STATE_CONFIRMED transaction
hash is returned.

Reviewed by Cursor Bugbot for commit
a36ba27. Bugbot is set up for automated
code reviews on this repo. Configure
here.

[dafc42c](https://github.com/MetaMask/metamask-mobile/commit/dafc42c6db046d4dd858209e93fca3888104dad3)

…0 cp-7.78.0 (#30267)

## **Description**

Fixes the first-deposit flow for new Predict users whose Polymarket
deposit wallet has been created but is not fully registered yet.

Polymarket advised that `STATE_MINED` can happen before the wallet is
usable on their side, so the deposit wallet relayer polling now treats
only `STATE_CONFIRMED` as a successful completion state. This keeps
polling through mined responses until Polymarket confirms the wallet,
preventing the follow-up batch transaction from failing with "wallet is
not registered".

## **Changelog**

CHANGELOG entry: Fixed a bug that caused a user's first Predict deposit
to fail while their deposit wallet was still registering.

## **Related issues**

Fixes: PRED-886

## **Manual testing steps**

```gherkin
Feature: Predict first deposit wallet registration

  Scenario: user makes their first Predict deposit
    Given a new Predict user does not have a registered Polymarket deposit wallet

    When user starts their first deposit
    Then the app creates the deposit wallet
    And waits until the relayer reports STATE_CONFIRMED
    And proceeds with the wallet batch transaction without a "wallet is not registered" error
```

## **Screenshots/Recordings**

N/A - logic-only relayer polling change.

### **Before**

N/A

### **After**

N/A

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

#### Performance checks (if applicable)

- [ ] I've tested on Android
  - Ideally on a mid-range device; emulator is acceptable
- [ ] I've tested with a power user scenario
- Use these [power-user
SRPs](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/edit-v2/401401446401?draftShareId=9d77e1e1-4bdc-4be1-9ebb-ccd916988d93)
to import wallets with many accounts and tokens
- [ ] I've instrumented key operations with Sentry traces for production
performance metrics
- See [`trace()`](/app/util/trace.ts) for usage and
[`addToken`](/app/components/Views/AddAsset/components/AddCustomToken/AddCustomToken.tsx#L274)
for an example

For performance guidelines and tooling, see the [Performance
Guide](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/400085549067/Performance+Guide+for+Engineers).

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

## Testing

- `yarn jest
app/components/UI/Predict/providers/polymarket/depositWallet.test.ts
--runInBand`

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes deposit-wallet relayer polling completion criteria, which can
affect first-deposit transaction flow timing and success. Low code
surface area but touches user-critical deposit execution behavior.
> 
> **Overview**
> Fixes Predict first-deposit failures by tightening Polymarket relayer
success detection: `waitForDepositWalletTransaction` now treats only
`STATE_CONFIRMED` (not `STATE_MINED`) as a completion state before
proceeding.
> 
> Updates the related unit test to expect continued polling through
`STATE_MINED`/no-hash responses until a `STATE_CONFIRMED` transaction
hash is returned.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
a36ba27. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@runway-github runway-github Bot requested a review from a team as a code owner May 15, 2026 19:35
@github-actions
Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbotv2 metamaskbotv2 Bot added the team-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label May 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

⏭️ Smart E2E selection skipped - PR targets a release branch (release/*)

All E2E tests pre-selected.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

@chloeYue
Copy link
Copy Markdown
Contributor

close in favour of #30276

@chloeYue chloeYue closed this May 15, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators May 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

size-XS team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants