Skip to content

test: prove the android pubky marketplace wallet leg #1212

Closed

Description

@ovitrif

Parent: #1207
Source: Pubky marketplace Bitkit team brief
Counterpart: synonymdev/bitkit-ios#718

Scope

  • Exercise the existing pubkyauth deep link, watch-only consent and xpub claim, linked-contact prerequisite, incoming Payment Request, payment approval, and regtest confirmation.
  • Record the first shipped release or tag containing the claim and incoming-request surfaces.
  • Add the matching journey with identifiers aligned to iOS.
  • Run the journey against the current implementation first so it establishes the baseline and exposes remaining gaps.

Acceptance criteria

  • The full flow passes end to end on Android.
  • Any discovered code gap is tracked as a blocking subissue.

Activity

  1. self-assigned this
    on Sep 1, 2026
  2. added this to the 2.6.0 milestone on Sep 1, 2026
  3. ovitrif commented on Sep 2, 2026

    @ovitrif
    CollaboratorAuthor

    Current-implementation run found an upstream blocking contract gap.

    • Seller watch-only claim and /setup completion passed.
    • The pinned fixture passed all 15 protocol-verifier steps.
    • Android created a local Pubky profile, established the linked-contact prerequisite, and found a funded regtest UTXO.
    • Paykit delivered Android Payment Request a90be1df-0a93-4077-a685-ccd8cb3142aa (event 49c2129d-a4a0-41d3-9200-79319f8bf4e8), but the record used asset=BTC and endpoint identifier btc-bitcoin-p2wpkh.
    • Android and iOS correctly require the canonical lowercase btc issuer contract from docs: codify paykit issuer interoperability #1208, so neither wallet surfaced the request.

    Blocking upstream issue: pubky/pubky-marketplace#1

    The payment and regtest-confirmation acceptance boundaries remain blocked until that issue emits lowercase btc with a network-correct btc-regtest-* endpoint identifier. This task stays In progress.

  4. ovitrif commented on Sep 2, 2026

    @ovitrif
    CollaboratorAuthor

    The corrected fixture rerun cleared the upstream wire-contract blocker and exposed the next Android gate.

    • Fixture commit ed03a32e passed the canonical verifier with lowercase btc, btc-regtest-p2wpkh, and a JSON value.
    • Reciprocal Android/iOS contacts and contact payments were active.
    • Locks bundle YT3N7MNQ55PARNR6BK4H80MBDC delivered Payment Request 767ca32e-8f17-4763-9343-3b273f4fb699 (event b19f4936-7b83-4a1d-a1ae-a571653a4b9e).
    • Android surfaced the exact request row with Seller and 15,000 sats, handled the absent note, and opened payment review.
    • The app resolved bcrt1q8r8ryq9tv7yufr7gpszpgyw7lly7dl97przkv2, retained 15,000 sats, showed ReviewContactRecipient=Seller, and estimated a 141-sat fee.

    The confirmation slider remains disabled because AppViewModel.onScanOnchain validates the incoming request amount but does not persist isAmountInputValid=true. No transaction was broadcast and the fixture mempool remained empty.

    Blocking Android issue: #1218. This issue is linked as blocked by #1218 and remains In progress until the broadcast and one-block confirmation boundaries pass.

    Corrected fixture tracking: pubky/pubky-marketplace#1

  5. ovitrif commented on Sep 2, 2026

    @ovitrif
    CollaboratorAuthor

    Acceptance passed on PR #1220 at exact head 0a0f7c8b4b7153fb9f0d39d7016ec1c0b73bf96a.

    • The fresh exact-head replay used Android buyer emulator-5554 with the serialized iOS seller fixture; the installed arm64 E2E APK SHA-256 matched cf96c9a637fd5b037ee4e34b5ea5ea77dd6049c71497d3cb22b4d221159e721c.
    • Live UI exposed exact PaymentRequestRow-5db852f6-d47a-43c4-8b17-fb7a654ac4dd and PaymentRequestPay-5db852f6-d47a-43c4-8b17-fb7a654ac4dd selectors, then preserved the accepted fallback seller identity pubky…apfiy, 15,000 sats, the 141-sat fee, and an enabled confirmation slider.
    • One authorized swipe broadcast a3a427ca69a3f1d3f26fb47f38182c8543fdbd997227ddb8a2dec1ef0e927166; exactly one block confirmed it at height 16,405 in 12611bd5ce6aaa061de27ffe8f90273233abd9622266ba1c6af759a361d15114.
    • The transaction paid exactly 15,000 sats to bcrt1q3y8hf8tuuur2t0ffwaj2xw2n7sk0chkvp7ukae, returned 984,859 sats as change, and paid a 141-sat fee.
    • Paykit reported confirmed/1/amount_matched=true, Locks bundle JCPQPBZ5NDJR6AKXBSMP386JJW completed, Android showed confirmed activity, and the paid request remained actionless history.
    • The native PR Preview records the full journey; its SHA-256 is e21ce4b0bea14e42c0bb437cd8d443deebe6e2ba40488c0b24dbaaad54ec05ec.
    • Local compile, 2,283 unit tests, lint, XML validation, whitespace checks, and independent exact-head review passed.
    • Post-undraft CI build and all E2E shards passed; lightning_security passed on its isolated rerun after the first attempt hit a runner Docker host-port collision before test execution.

    PR #1220 is ready for review with the fresh acceptance evidence recorded in its QA Notes and native Preview.

  6. changed the title [-]test: prove the Android Pubky marketplace wallet leg[/-] [+]test: prove the android pubky marketplace wallet leg[/+] on Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions