Skip to content

[Bug]: Selecting USDT when creating a subscription blocks amount entry at 0.00 #1044

Open

Description

@piotr-iohk

What happened?

When creating a subscription, selecting USDT under Accepted payments before entering an amount opens the amount editor at 0.00 (0,00 on iOS). Tapping keypad digits does nothing and Continue remains disabled. The attached recording shows the behavior on both platforms.

Expected behavior

A zero amount should act as a placeholder. The first nonzero digit should start a new amount, and Continue should become enabled once the amount is valid.

Steps to Reproduce

  1. Open Subscriptions and tap Create.
  2. Leave the draft amount at zero.
  3. Select USDT under Accepted payments.
  4. Tap the amount/edit control to open the amount editor.
  5. Tap a nonzero keypad digit.
  6. Observe that the amount stays at 0.00 / 0,00 and Continue remains disabled.

Logs / Screenshots / Recordings

2026-10-20-subscription-usdt-zero-recording.mp4

User-supplied cross-platform recording (iOS left, Android right); full 37-second clip, prepared as H.264 MP4 for inline playback.

Bitkit Version

2.5.0 (197), local Debug/E2E build of PR #1006 at 78cfdb75095cdc5be817fb51151bad4d88b6b3a0.

Device / OS

iPhone 17 Pro simulator, iOS 26.0.

Reproducibility

Observed on both platforms in the supplied recording. Deterministic for a prefilled zero USD draft in the inspected code; frequency across other versions/devices has not been measured.

Additional context

Observed using staging/regtest E2E Debug builds connected to the local USDT fixture; existing wallet profiles retained. This is an amount-entry state issue, independent of balances, clock synchronization, or payment submission.

Cause identified in source: selecting USDT sets USD pricing. The zero draft's inputValue is "0.00", which is used directly as editable input. The shared keypad logic rejects new digits because the two fractional places are already occupied. Initialize a zero draft as empty editable input while keeping the displayed zero placeholder; preserve nonzero amounts and decimal editing.

Workaround: switch BTC → USD inside the amount editor, then type; alternatively delete the prefilled zero before typing.

Regression coverage: select USDT while the draft amount is zero, open Amount, type a nonzero digit and expect the value to change and Continue to enable. Also cover decimals, returning to details and reopening a nonzero amount.

PaymentRequestAmountView in CreatePaymentRequestView.swift initializes dollarAmount from initialDraft.amount.inputValue; NumberPadInputHandler then ignores added digits. Isolated execution of the actual handler confirms "0.00" + "1" stays "0.00", while empty input + "1" becomes "1".

The affected editor/keypad code is unchanged from this PR’s base; this is an existing bug, not introduced by the installed subscription PR. Evidence is the supplied device recording plus source inspection; no new live device session was run for this report.

Platform parity: same behavior on Android.

Companion report: synonymdev/bitkit-android#1616

Activity

  1. added theissue type on Oct 20, 2026
  2. added this to the 3.1.0 milestone on Oct 20, 2026
  3. ovitrif commented on Oct 20, 2026

    @ovitrif
    Collaborator

    Triage: milestone 3.1.0, with its twin synonymdev/bitkit-android#1616. Entering the amount before selecting USDT avoids it, so it does not block 3.0.1; a candidate if a 3.0.2 ships.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions