Skip to content

[codex] Add public Paykit payments to contacts#531

Merged
ovitrif merged 28 commits intomasterfrom
codex-paykit-public-endpoints-pr527
May 6, 2026
Merged

[codex] Add public Paykit payments to contacts#531
ovitrif merged 28 commits intomasterfrom
codex-paykit-public-endpoints-pr527

Conversation

@ben-kaufman
Copy link
Copy Markdown
Contributor

@ben-kaufman ben-kaufman commented Apr 29, 2026

Summary

  • Add public Paykit payments for saved contacts and scanned/pasted Pubky contacts.
  • Publish wallet payment endpoints from the Pay Contacts settings flow.
  • Support Lightning, on-chain, and combined BIP21 contact payment requests using the existing send flow.
  • Update Paykit endpoint IDs and bindings for paykit-rs v0.1.0-rc3.

Notes

  • Pubky scan/paste opens the contact flow first; payment starts from the contact screen.
  • On-chain endpoints are selected by priority: taproot, segwit, p2sh, then legacy.
  • You can verify and see the endpoints published on https://payky.app

Validation

  • swiftformat on touched Swift files
  • git diff --check
  • xcodebuild -resolvePackageDependencies -project Bitkit.xcodeproj
  • Full app build was attempted, but still fails in existing vss-rust-client-ffi generated bindings.
  • Translation validation was attempted, but the script currently needs the missing glob dependency.

@ben-kaufman ben-kaufman changed the title [codex] Complete public Paykit contact payments [codex] Add public Paykit payments to contacts Apr 29, 2026
@ben-kaufman ben-kaufman force-pushed the codex-paykit-public-endpoints-pr527 branch from 1d622bc to 18a0af9 Compare April 29, 2026 14:10
@ben-kaufman ben-kaufman marked this pull request as ready for review April 29, 2026 14:10
@ben-kaufman ben-kaufman force-pushed the codex-paykit-public-endpoints-pr527 branch from 18a0af9 to f1a122e Compare April 29, 2026 14:14
Comment thread CHANGELOG.md Outdated
Comment thread Bitkit/Views/Contacts/ContactActivityView.swift
Comment thread Bitkit/Views/Wallets/Send/SendConfirmationView.swift
Comment thread Bitkit/Views/Wallets/Send/SendPendingScreen.swift
Comment thread Bitkit/Views/Wallets/Send/SendSuccess.swift
Comment thread Bitkit/Views/Contacts/ContactActivityView.swift Outdated
Comment thread Bitkit/Services/PublicPaykitService.swift Outdated
@claude

This comment has been minimized.

@ben-kaufman ben-kaufman force-pushed the codex-paykit-public-endpoints-pr527 branch from 5b94276 to 3d1f2b2 Compare May 4, 2026 15:54
Comment thread CHANGELOG.md Outdated
Comment thread Bitkit/Views/Contacts/AddContactView.swift Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3ea3f5832a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Bitkit/Utilities/AppReset.swift Outdated
Comment thread Bitkit/ViewModels/ActivityListViewModel.swift Outdated
@claude

This comment has been minimized.

@claude

This comment has been minimized.

@piotr-iohk
Copy link
Copy Markdown
Collaborator

piotr-iohk commented May 5, 2026

Tested roughly against this plan. Tested against staging.

Areas tested and 🟢 for me (encountered issue #536, but seems unrelated to paykit).

  • send/receive with imported pubky to saved/unsaved contact (onchain and lightning)
  • send/receive with created pubky to saved/unsaved contact (onchain and lightning)
  • RBF sent tx to concat
  • CPFP on received tx from contact
  • enable/disable payments with contacts

Some testing notes / observations:

  • Enter manually is not supporting pubky (since we have it supported on paste/qr code scan etc. - then Send -> Enter manually should also support it)
Screenshot 2026-05-05 at 14 10 21
  • RBF-ed transaction not shown in profile activity (Instead there is a sent tx with Removed from Mempol note)
    • to reproduce:
    • send to contact and RBF transaction
    • see transactions in contact activity
Screenshot 2026-05-05 at 14 30 16

@piotr-iohk piotr-iohk mentioned this pull request May 5, 2026
5 tasks
piotr-iohk
piotr-iohk previously approved these changes May 5, 2026
Copy link
Copy Markdown
Collaborator

@piotr-iohk piotr-iohk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, remaining obesrvations can be addressed separately, issue for tracking: #539

ovitrif
ovitrif previously approved these changes May 5, 2026
Copy link
Copy Markdown
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Tested using same script like on Android counterpart ([codex] add public contact payments).

Focused on validating, besides happy flow, edge cases to ensure Public pay2contact payment methods are always up-to-date.

@ben-kaufman ben-kaufman dismissed stale reviews from ovitrif and piotr-iohk via 31b2b28 May 5, 2026 15:51
ovitrif
ovitrif previously approved these changes May 5, 2026
Copy link
Copy Markdown
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validated fix in last commit for Payky 🎉

@ovitrif ovitrif enabled auto-merge May 5, 2026 16:38
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 768c3d05a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Bitkit/Utilities/PaymentNavigationHelper.swift Outdated
Comment thread Bitkit/Managers/ScannerManager.swift
@piotr-iohk
Copy link
Copy Markdown
Collaborator

I checked 2881537. It seems to only partially touch #539 (not sure if that was the intent): it filters replaced RBFd sent transactions from contact activity, so it removes the stale “Removed from Mempool” row, but it doesn't make the new replacement tx appear in contact activity - effectively RBFd tx does not appear in the activity at all. The manual Send -> Enter manually pubky routing is not addressed by this commit.

@pwltr
Copy link
Copy Markdown
Contributor

pwltr commented May 6, 2026

Aside from things already mentioned I noted the following:

Missing or disabled UI (make sure this was left out of scope on purpose):

  • Send -> Contact (select contact)
  • ActivityRow: Contact image
  • ActivityDetail: Assign contact, assigned contact UI
  • Settings -> Payment Preference

Pay to contact (LN, iOS to iOS): For a new profile, when creating the first channel it publishes an invoice, but it does not seem to be payable (route not found). Only after a restart (receiver) can it be paid.

  • Receiver: Create wallet, create Pubky w/ Bitkit
  • Sender: Add Contact
  • Sender: Send onchain
  • Receiver: open channel
  • Sender: Send LN -> route not found
  • Receiver: restart app
  • Sender: Send LN -> works
Simulator.Screen.Recording.-.iPhone.SE.3rd.generation.-.2026-05-06.at.12.59.39.mov

UI in general needs a lot of polishing, but out of scope for this PR.

@ovitrif ovitrif modified the milestone: 2.3.0 May 6, 2026
@ovitrif
Copy link
Copy Markdown
Collaborator

ovitrif commented May 6, 2026

Updated issue for polishing work 539 with @pwltr 's findings:

Copy link
Copy Markdown
Collaborator

@ovitrif ovitrif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utAck, rechecked code changes.

We should merge and continue the #539 fixes in new PR(s). 🙏🏻

@ovitrif ovitrif disabled auto-merge May 6, 2026 13:49
@ovitrif ovitrif merged commit 904d307 into master May 6, 2026
12 checks passed
@ovitrif ovitrif deleted the codex-paykit-public-endpoints-pr527 branch May 6, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants