Skip to content

Fix/issues 192 193 194 195 - #340

Open
DNight-King wants to merge 3 commits into
ethos-protocol:mainfrom
DNight-King:fix/issues-192-193-194-195
Open

Fix/issues 192 193 194 195#340
DNight-King wants to merge 3 commits into
ethos-protocol:mainfrom
DNight-King:fix/issues-192-193-194-195

Conversation

@DNight-King

@DNight-King DNight-King commented Aug 28, 2026

Copy link
Copy Markdown

Summary

Wires up Deposit, Withdraw, and Manage Beneficiary flows on Android — the screens, ViewModels,
and API calls already existed but were unreachable from the app's normal navigation (only from
deep links). Also fixes a validation gap in beneficiary address entry.

  • Add VaultDetailScreen navigation from VaultListScreen (previously a no-op), with a Funds
    section exposing Deposit and Withdraw, and a Beneficiary section exposing Manage Beneficiary.
  • Fix ManageBeneficiaryScreen to validate the new address with StellarAddress.isValidPublicKey
    (previously only checked non-empty/changed), matching CreateVaultDialog's existing validation.
  • Update PARITY.md rows for Deposit, Withdraw, and Update Beneficiary.

Not included

#192 (assetlinks.json verification failure) is not addressed — root cause is on the server
hosting ethos-protocol.app, which this repo doesn't contain code for. The verification script/
workflow itself looks correct. Fixing it requires updating the live assetlinks.json file or the
ANDROID_CERT_SHA256 repo secret, not a code change here.

Test plan

  • Build the Android app and confirm tapping a vault in the list opens Vault Detail
  • From Vault Detail, confirm Deposit opens with the correct vault id and returns on success
  • From Vault Detail, confirm Withdraw opens with the vault's current balance, requires
    biometric confirmation, and returns on success
  • From Vault Detail, confirm Manage Beneficiary opens with the current beneficiary pre-filled,
    rejects a malformed Stellar address, and accepts a valid one

Closes #192
Closes #193
Closes #194
Closes #195

DepositScreen, DepositViewModel, and ApiClient.deposit() already existed
but were only reachable via the deep-link action router — there was no
way to open Deposit from the normal vault list/detail flow, and
VaultListScreen's onVaultClick was a no-op.

Add a VaultDetailScreen route wired from VaultListScreen, and a Funds
section on VaultDetailScreen with a Deposit button that navigates to
the existing DepositScreen.
WithdrawScreen and WithdrawViewModel already existed with biometric
gating via BiometricHelper (matching the check-in pattern) and were
already wired to the deep-link action router, but there was no path to
them from the normal vault list/detail flow.

Add a Withdraw button to VaultDetailScreen's Funds section, passing the
vault's current balance so WithdrawScreen can enforce its client-side
balance guard.
…arAddress

ManageBeneficiaryScreen already existed but had no route or entry point
anywhere in the app, and its address validation only checked for a
non-empty, changed value rather than a syntactically valid Stellar
StrKey address (unlike CreateVaultDialog, which already validates via
StellarAddress.isValidPublicKey from ethos-protocol#113).

Add a "Manage Beneficiary" button to VaultDetailScreen and a
beneficiary/{vaultId} route (via a small ManageBeneficiaryRoute wrapper
that loads the vault first, since ManageBeneficiaryScreen needs the
full Vault for its current beneficiary). Fix the validation to reuse
StellarAddress.isValidPublicKey, matching the create-vault flow.
@drips-wave

drips-wave Bot commented Aug 28, 2026

Copy link
Copy Markdown

@DNight-King Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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

Labels

None yet

Projects

None yet

1 participant