Skip to content

feat: add mobile vault capability gate - #376

Merged
El-swaggerito merged 1 commit into
Axionvera:mainfrom
Myart352:feat/vault-capability-gate
Jul 27, 2026
Merged

feat: add mobile vault capability gate#376
El-swaggerito merged 1 commit into
Axionvera:mainfrom
Myart352:feat/vault-capability-gate

Conversation

@Myart352

Copy link
Copy Markdown
Contributor

PR: Mobile Vault Capability Gate (#331)

Summary

Gate vault UI actions based on available SDK or contract capabilities. Each vault action (deposit, withdrawal, lock creation, and matured-lock withdrawal) is individually checked with clear user-facing explanations when unsupported.

Changes

New Files

  • src/types/vault.ts — Added VaultActionCapability, VaultCapabilities, VaultAction types for per-action capability state (supported/unsupported/loading).
  • src/utils/vaultCapabilities.ts — Centralized capability check utility: evaluateVaultCapabilities(), isActionSupported(), getActionUnsupportedReason(), getActionUnsupportedDetail().
  • src/hooks/useVaultCapabilities.ts — Reactive hook that combines wallet, vault config, and feature flag states into a capabilities map.

Modified Files

  • app/(tabs)/vault.tsx — Capability-gated deposit, withdraw, and lock buttons with disabled states and explanatory notices. Fixed broken handleConfirmAction logic.
  • src/components/VaultLockList.tsx — Added unlockDisabledReason prop; shows disabled "Unlock Unavailable" button with styling when unlock is not supported.
  • src/components/VaultConfirmModal.tsx — Added optional capabilityWarning prop shown in the modal detail section.
  • src/hooks/index.ts — Exported useVaultCapabilities.
  • docs/vault-sdk-capability-assumptions.md — Updated with capability gate architecture, action table, and future SDK integration path.

Acceptance Criteria

  • Capability gate is added
  • Unsupported actions are disabled or hidden
  • User-facing explanation is shown
  • SDK capability assumptions are documented
  • Fallback UI is provided (VaultUnavailableState for full unavailability)

Testing

  • Verified no TypeScript errors in modified files
  • All pre-existing tests continue to pass
  • Capability state updates reactively when wallet/vault state changes

Branch

feat/mobile-three-features

Issue

Closes #331

@El-swaggerito
El-swaggerito merged commit 351c542 into Axionvera:main Jul 27, 2026
1 check passed
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.

Add mobile vault capability gate

2 participants