Skip to content

feat(ios): wire the CASH card and the core to the funding overlay; remove the getcash path - #1345

Open
filvecchiato wants to merge 177 commits into
funding/host-gapsfrom
hosts/ios-cash-card
Open

filvecchiato wants to merge 177 commits into
funding/host-gapsfrom
hosts/ios-cash-card

Conversation

@filvecchiato

@filvecchiato filvecchiato commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Part of #1267. Builds on #1868.

Wires the CASH card and the core to the funding overlay, and removes the getcash path. The pieces it wires land in the PRs below.

Wiring

  • TrUAPIHostRuntimeProvider installs AppFundingHostBridge over AppFundingOverlay (with AppFundingEnvironment) on the runtime before any execution opens, so a product's Funding request never answers unsupported. It also routes workerCrashing to the overlay and attaches FundingActivityCenter.
  • FundingOpening/RuntimeFundingOpener opens a session on the host's own behalf. The CASH card's Get (asset details) and Send (search account) open the overlay through it, or show the sessions still in flight. Failures are worded for the user.
  • The wallet's navigation bar has a funding history button while the Purse is open.
  • Resume: at launch, ServiceCoordinator starts the core when a provider was still working on a session last run (FundingResumeMarker), after payments are attached.

getcash removal

Tests: unit tests build; the simulator test runner hangs, so they have not run. The Nightly app builds.

funding

Stack (iOS funding, review bottom-up):

  1. feat(ios): load products from the app bundle; funding-only workers; headless worker prompts #1865 load products from the app bundle (base main)
  2. feat(ios): funding core integration — FFI bindings, session model, provider listing, worker exits #1866 funding core integration (base funding/host-gaps, feat(truapi)!: crypto networks, learned limits, retrying, payout and refunds for the funding screens #1344)
  3. feat(ios): Purse UI for the CASH card #1867 Purse UI for the CASH card
  4. feat(ios): funding overlay screens and activity #1868 funding overlay screens and activity
  5. feat(ios): wire the CASH card and the core to the funding overlay; remove the getcash path #1345 this PR: wiring and getcash removal

Split into the stack above as requested in review.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

This pull request touches an app, which is not built by default. Add a label for each build you want:

  • iOS simulator build, ios-simulator-build: builds the iOS app, runs its tests and attaches a build for the iOS Simulator on a Mac.
  • iOS device build, ios-device-build: attaches a signed build that installs on a registered iPhone or iPad.

Each starts as soon as it is added and follows the branch from then on.

@filvecchiato
filvecchiato added this pull request to stack #1346 October 8, 2026 19:03
@github-actions github-actions Bot added the area:ios Touches the iOS host app or the iOS packages label Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Bundle size report

Compared with main at ab108f7.

Raw Gzip Brotli
truapi-host 8.49 MiB (+94.4 KiB, +1.1%) 5.87 MiB (+32.7 KiB, +0.5%) 5.53 MiB (+24.7 KiB, +0.4%)
truapi-provider 4.04 MiB 1.27 MiB 961.4 KiB
truapi 7.54 MiB (+43.3 KiB, +0.6%) 1.05 MiB (+7.8 KiB, +0.7%) 877.1 KiB (+6.5 KiB, +0.7%)
trinity-stack 634.2 KiB 247.5 KiB 204.8 KiB
Total 20.70 MiB (+137.7 KiB, +0.7%) 8.43 MiB (+40.5 KiB, +0.5%) 7.53 MiB (+31.1 KiB, +0.4%)

WebAssembly modules

Raw Gzip Brotli
truapi-host/wasm/web/truapi_server_bg.wasm 3.38 MiB (+92.8 KiB, +2.8%) 1.17 MiB (+32.3 KiB, +2.8%) 894.6 KiB (+24.3 KiB, +2.8%)
truapi-host/wasm/web/truapi_verifiable_bg.wasm 4.89 MiB 4.64 MiB 4.61 MiB
truapi-provider/truapi_provider_bg.wasm 4.00 MiB 1.27 MiB 953.6 KiB
trinity-stack/wasm/trinity_stack_bg.wasm 564.4 KiB 230.5 KiB 190.0 KiB
Changed files (10)
Raw Gzip Brotli
truapi-host/wasm/web/truapi_server_bg.wasm 3.38 MiB (+92.8 KiB, +2.8%) 1.17 MiB (+32.3 KiB, +2.8%) 894.6 KiB (+24.3 KiB, +2.8%)
truapi/explorer/codegen/types.js 319.1 KiB (+20.1 KiB, +6.7%) 45.3 KiB (+3.3 KiB, +7.8%) 35.2 KiB (+2.7 KiB, +8.4%)
truapi/playground/codegen/truapi-dts.js 390.8 KiB (+14.7 KiB, +3.9%) 67.8 KiB (+3.2 KiB, +4.9%) 54.1 KiB (+2.6 KiB, +5.1%)
truapi/generated/types.js 88.4 KiB (+3.7 KiB, +4.3%) 10.9 KiB (+679 B, +6.4%) 9.1 KiB (+559 B, +6.4%)
truapi/generated/client.js 95.5 KiB (+2.0 KiB, +2.1%) 14.7 KiB (+279 B, +1.9%) 12.2 KiB (+214 B, +1.7%)
truapi/playground/codegen/services.js 127.6 KiB (+1.9 KiB, +1.5%) 19.7 KiB (+336 B, +1.7%) 16.5 KiB (+302 B, +1.8%)
truapi-host/generated/host-callbacks.js 13.6 KiB (+1.0 KiB, +8.1%) 4.2 KiB (+290 B, +7.2%) 3.6 KiB (+256 B, +7.6%)
truapi/generated/wire-decode.js 37.1 KiB (+692 B, +1.9%) 3.7 KiB (+49 B, +1.3%) 3.1 KiB (+40 B, +1.3%)
truapi-host/wasm/web/truapi_server.js 59.9 KiB (+562 B, +0.9%) 10.8 KiB (+99 B, +0.9%) 9.3 KiB (+91 B, +1.0%)
truapi/generated/wire-table.js 11.4 KiB (+199 B, +1.7%) 1.8 KiB (+20 B, +1.1%) 1.5 KiB (+15 B, +1.0%)

Commit: e819f1d

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

CI Status: 24 required jobs green, 16 passed and 8 skipped by path filter.

All job results
job result
android-app skipped
android-bindings skipped
bundle-size success
changes success
changeset-guard skipped
cli-package skipped
codegen success
e2e skipped
explorer success
headless-install success
host-wasm success
ios-app skipped
ios-bindings success
licenses success
playground success
provider-android-bindings skipped
release-guard success
rust success
ts-client success
ts-debugger success
ts-host success
ts-trinity-stack success
wasm-provider success
workflow-lint skipped

Signing credentials: valid as of 2026-11-03

Commit e819f1db · run log

The app's network TLD is testnet, so fundtest-provider.dot never parsed
as a page: present_provider_frame answered Dismissed at once and the
provider ended every card and bank session as Cancelled.
…r screens close

A failed session shows its reason on the deposit and summary screens and
in the CASH card history, which stores an Other failure's message
(UserDataModel55). Selection, cancel and open errors are no longer
dropped. The provider frame's back and sent-funds buttons hide it
without answering, since the provider takes an early answer as the user
giving up; a session under In Progress reopens its deposit screen and
any frame still waiting.

This branch has not been deployed

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

Labels

area:android Touches the Android host app or the Android packages area:core Touches the Rust core under rust/crates area:ios Touches the iOS host app or the iOS packages ci:ios-simulator Build the iOS app for the simulator and attach it size:XXL 1000 lines or more; split it, or say in the description why it cannot be status:waiting-on-review Ready for a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hosts: serve funding to the core Overlay: status and complete Overlay: inputs and providers Balance card entry and funding history

2 participants