-
Notifications
You must be signed in to change notification settings - Fork 56
feat(platform-wallet): dip-13 dashpay invitations #4041
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
80 commits
Select commit
Hold shift + click to select a range
4891bd4
docs(dashpay): DIP-13 invitations spec (reviewed + synced)
shumkov 1d8b490
feat(platform-wallet): DIP-13 invitation link codec
shumkov c60b3e3
feat(platform-wallet): path-gated invitation voucher-key export
shumkov 9e40ee8
feat(platform-wallet): invitation create + claim flows
shumkov 5039946
fix(platform-wallet): fold invitation Rust-core review findings
shumkov 6a730a9
test(qa): add DIP-13 invitation scenarios to the example-app QA contract
shumkov f59edf6
feat(platform-wallet): invitation create + claim FFI
shumkov 55c9537
fix(platform-wallet): scrub the exported voucher scalar in create_inv…
shumkov 4d39bdc
feat(swift-sdk): createInvitation / claimInvitation wrappers on Manag…
shumkov 2b2a871
feat(platform-wallet): persist inviter-side invitation records (Rust …
shumkov 8fd0613
feat(swift-sdk): add DashPay create-invitation UI (DIP-13)
shumkov bd60102
feat(platform-wallet-ffi): add parse-invitation preview FFI + Swift w…
shumkov 5967661
feat(swift-sdk): add DashPay claim-invitation flow (DIP-13)
shumkov 4e0dfbe
feat(swift-sdk): handle dashpay:// invitation deep links
shumkov 01cd566
test(platform-wallet-storage): allow-list invitations.rs read-only re…
shumkov a50a806
fix(swift-sdk): present invitation claim sheet on cold-launch deep link
shumkov 0b51001
fix(rs-sdk-ffi): enforce fully-hardened invitation export path
shumkov 2d568b7
fix(platform-wallet): fold invitation review findings
shumkov c2ddfcf
docs(dip15): sync spec §4.1/§6 with as-built code + note scheme limit…
shumkov a001d26
fix(swift-sdk): re-present invitation claim sheet on a second deep link
shumkov 10fbc57
fix(platform-wallet): persist asset-lock account used-index across re…
shumkov 74675fc
test(platform-wallet): pin asset-lock funding-index persistence
shumkov 55937e1
fix(platform-wallet): gate invitation broadcast on funding-index persist
shumkov 096e52d
feat(platform-wallet-ffi): topup-from-existing-asset-lock FFI (invita…
shumkov ce6a04d
feat(platform-wallet-ffi): invitation persistence callback (Sent-invi…
shumkov 4e49286
test(platform-wallet-ffi): pin InvitationEntryFFI ABI size (layout gu…
shumkov 9a6188c
docs(dip15): reviewed Sent-invitations persistence + reclaim spec
shumkov c1f0c45
feat(swift-sdk): Sent-invitations SwiftData bridge + list (DIP-13)
shumkov 0b12d2d
fix(rs-sdk-ffi): revert over-strict hardened invitation export gate
shumkov 3f498ba
fix(platform-wallet): persist invitation record for non-hardened fund…
shumkov 7b371fe
fix(SwiftExampleApp): add PersistentInvitation to Storage Explorer views
shumkov 4e3a9b0
style(platform-wallet-ffi): sort invitation_persistence re-export
shumkov 30ab23f
Merge branch 'v4.1-dev' into feat/dip15-dashpay-invitations
shumkov d7ebdaa
feat(swift-sdk): reclaim an unclaimed DashPay invitation as credits
shumkov 3029ffe
feat(platform-wallet): enforce a minimum invitation amount
shumkov 261e2f2
fix(swift-sdk): raise invitation default above the claimable floor
shumkov d14c02e
fix(swift-sdk): narrow already-consumed classifier to canonical Displ…
shumkov 139a478
fix(swift-sdk): disable Cancel during an in-flight invitation reclaim
shumkov 250976a
docs(swift-example-app): add QA004 invitation-reclaim AI-QA playbook
shumkov fb31b53
fix(swift-example-app): make the reclaim classifier nonisolated
shumkov a0161d0
refactor(swift-example-app): move Create invitation to the Sent Invit…
shumkov d8ab2f8
docs(swift-example-app): point QA004 + DP-12 at the new Create-invita…
shumkov cc19969
docs(dip15): address review nits — fence language + stale reclaim-sco…
shumkov 539d721
fix(swift-example-app): distinguish self-reclaim from foreign claim o…
shumkov 2b47bd5
fix(swift-sdk): log invitation persistence fetch failures instead of …
shumkov 101f941
docs(dip13): reviewed legacy-compat invitation spec (v2)
shumkov 4af1427
feat(platform-wallet): size the invitation cap for onboarding (identi…
shumkov ccc4801
feat(rs-sdk): add Sdk::get_transaction to fetch + decode a Core tx by id
shumkov 31b6ca3
feat(platform-wallet): legacy-compatible invitation codec + claim-by-…
shumkov 48bbdb6
feat(platform-wallet-ffi): adapt invitation FFI to the legacy codec
shumkov a26136b
docs(dip13): record legacy-format consequences (inviter-id/expiry off…
shumkov e1cdbd4
feat(swift-example-app): wire invitation UI to the legacy-compat codec
shumkov b723662
fix(rs-sdk): get_transaction returns Option; classify not-found vs tr…
shumkov 83f0ee6
fix(platform-wallet): harden invitation codec per adversarial review
shumkov f7af58d
Merge remote-tracking branch 'origin/v4.1-dev' into feat/dip15-dashpa…
shumkov 57f2a98
style: rustfmt the changeset re-export merge resolution
shumkov b7d79f7
fix(platform-wallet): record invitation before fallible steps; propag…
shumkov e51c38f
fix(swift-sdk): persistence callbacks signal failure (invitations; sc…
shumkov bbc0d27
fix(swift-example-app): keep reclaim UI without an identity; safer re…
shumkov 82532db
docs(dip15): invitation review-fix spec; universal-link note; persist…
shumkov f0423e0
fix(platform-wallet): record chainlock voucher; retry claim fetch; te…
shumkov b613d92
fix(swift-example-app): reclaim all wallets' invitations; recover cra…
shumkov 6009566
docs(dip15): update invitation QA/test-plan for the legacy codec + re…
shumkov 2377cf3
Merge remote-tracking branch 'origin/v4.1-dev' into feat/dip15-dashpa…
shumkov 08bf78c
fix(platform-wallet): durable invitation persistence gate; record inv…
shumkov 81b0b72
fix(swift-example-app): scope invitation list to loaded wallets; requ…
shumkov e67ecfe
docs(dip15): round-3 review-fix spec; QA004/TEST_PLAN accuracy for th…
shumkov 204634c
fix(swift-example-app): re-inject walletManager into the toolbar-push…
shumkov 81a09d8
docs(dip15): record the as-built deltas in the invitations spec
shumkov ac6adbf
docs(dip15): consolidate the four invitation specs into one canonical…
shumkov 61f066b
refactor(rs-sdk-ffi): source export-gate path constants from key_wall…
shumkov 9913db9
fix(platform-wallet,swift-example-app): round-4 review — retry-loop s…
shumkov 0a0b3e9
build: bump rust-dashcore to ac8828c9; use the new dip9 DIP-15 constants
shumkov f1af0c9
fix(platform-wallet): round-5 review — fail-closed durability; non-br…
shumkov ee74cfd
Merge remote-tracking branch 'origin/v4.1-dev' into feat/dip15-dashpa…
shumkov 17578a4
fix(platform-wallet,swift-example-app): round-6 review — serialize fu…
shumkov ff67585
fix(platform-wallet,swift-example-app): round-7 review — voucher resu…
QuantumExplorer 7c64b1d
fix(swift-sdk): update invitation persistence test for the keyType sn…
shumkov b3cfa46
Merge remote-tracking branch 'origin/v4.1-dev' into feat/dip15-dashpa…
QuantumExplorer e1b7449
Merge remote-tracking branch 'origin/feat/dip15-dashpay-invitations' …
QuantumExplorer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔴 Blocking: Voucher authorization changes existing C ABI symbols in place
The PR inserts
consume_invitation_voucher: boolbefore the output parameters of two existing#[no_mangle]functions without changing their exported names. The resume symbol had the old signature at the PR merge base, and the top-up symbol had it at updated-target commit97477d1c88. A caller compiled against either old header passes an output pointer where Rust now expects a bool, shifts the remaining output pointers, and can trigger invalid-bool undefined behavior and writes through unspecified addresses. The in-tree Swift rebuild does not preserve the public C ABI. Keep the existing symbols as default-deny compatibility shims and add new authorized or versioned entry points for invitation reclaim. The publicAssetLockFunding::FromExistingAssetLockvariant also gained a required field and should receive a source-compatible authorization path.source: ['codex']