Repository navigation
Conversation
# Conflicts: # gradle/libs.versions.toml
This was referenced Nov 2, 2026
Collaborator
Author
|
Pushed |
Contributor
Regtest APKDownload bitkit-dev-debug universal APK (expires in 30 days). |
Collaborator
Author
|
Added to the 3.2.0 milestone: Spark via Breez SDK is the 3.2.0 highlight, and this PR stacks on #1697. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Twin: synonymdev/bitkit-ios#1191
Dependency:
This PR lets Spark pay a Paykit contact who only accepts on-chain bitcoin, when it costs less than a Pubky Swaps provider.
Description
SparkRepo.withdrawalRouteLeg).Route: Sparkwith the leg's fee in the fee row, and the swipe withdraws exactly the amount to the contact's address from Spark. The contact receives exactly the amount entered.0.8.0-swaps.3, a prerelease cut from the router change.PUBKY_SWAPS_ROUTESon regtest debug builds only, like the swap route.What it needs to ship
Design
N/A — no design available.
Preview
A wallet whose spending balance is held on Spark pays a contact who accepts only on-chain bitcoin. The router finds no swap provider among the wallet's contacts and picks a Spark withdrawal, the confirm screen shows
Route: Spark, and the contact receives exactly 20,000 sats on Spark's regtest chain (2x speed).android-spark-j12x.mp4
QA Notes
Setup
main:docker compose up -d, then./pubky-marketplace upand./pubky-marketplace seed, thendocker compose --profile marketplace --profile payment-requests up -d --no-build fixture-issuer rc56-peer. No swap provider is needed.E2E=true E2E_BACKEND=local E2E_LOCAL_HOST=127.0.0.1 E2E_HOMESERVER_PUBKY=$(./pubky-marketplace info | jq -r .homeserver_z32) PUBKY_SWAPS_ROUTES=true ./gradlew assembleDevDebug, thenadb reverse6286, 6287, 6288, 15411, 15412, 60001, 23735, 23000 and 23010 before first launch.bitkit://contact?pubky=<pubky>, fromcurl 127.0.0.1:23012/health).fixture-issuer, which publishes onlybtc-regtest-p2wpkh.Journeys
paykit-spark-route.xml— a wallet whose spending balance is on Spark pays an on-chain-only contact through a Spark withdrawal, and the contact receives exactly 20,000 satsManual Tests
N/A
Evidence
28a63f8on bitkit-core0.8.0-swaps.3:Route: Sparkand the leg's fee;56263be8…is confirmed on Lightspark's regtest chain and pays exactly 20,000 sats to the contact's address.Automated Checks
SparkRepoTestcases: a withdrawal quoted as a route leg, and no leg when the balance cannot cover the amount plus the feeSparkRepoTestandAppViewModelSendFlowTestat28a63f8: passjust lint(detekt and Android Lint): passModels used
claude-opus-5-5(reasoning:medium)claude-opus-5-5(reasoning:medium)