Files
pezkuwi-wallet-android/feature-assets
pezkuwichain e716e6e277 Fix Pending Signatures: query the bridge's own hardcoded multisig, not the generic multisig-account feature
The previous commit reused MultisigPendingOperationsService, but that
service only syncs accounts formally registered as a MultisigMetaAccount
in this wallet - it silently returns an empty NoOpSyncer for every other
account type. The bridge's 5 signatories (Serok etc.) use their own
regular wallets to approve calls against the bridge's separate,
hardcoded multisig (BridgeMultisigConstants) - they never "are" that
multisig account, so the feature was structurally guaranteed to show
nothing, not just empty by coincidence.

Fix queries the bridge's own multisig accounts directly, mirroring the
exact pattern this screen's existing renewal-signing code already uses
(BridgeMultisigRuntimeApi's runtime-metadata accessors, a local mirror
of feature-account-impl's off-chain call-data indexer client - same
module-boundary reasoning already documented in that file) rather than
the generic, differently-scoped service:

- BridgeMultisigInteractor.getPendingApprovals(): enumerates
  Multisig.Multisigs entries for both bridge multisig accounts via
  QueryableStorageEntry2.keys()/entries() (a general runtime-storage
  capability, not multisig-feature-specific), fetches real call content
  from the same off-chain indexer the generic feature uses (also
  general-purpose, keyed by address+hashes - never required the account
  to be a MultisigMetaAccount either), and filters to calls this
  signatory hasn't approved yet.
- BridgeMultisigInteractor.submitApproval(): reuses
  composeBridgeMultisigAsMulti generalized to an arbitrary call+
  timepoint (previously only used for the renewal call) - refuses to
  proceed if the call content is unknown, never blind-signs.
- BridgeViewModel formats the real parsed transfer (amount+destination)
  via AssetSourceRegistry.tryParseTransfer, already used elsewhere for
  the exact same "decode a transfer call" job - no fabricated preview
  data.

Reverts the feature-multisig:operations cross-feature dependency and
FeatureApi wiring added in the previous commit - no longer needed since
everything now lives in this screen's own existing self-contained
domain layer, matching how the rest of BridgeMultisigInteractor already
works (and already explains, in its own doc comments, why a synthetic
MultisigMetaAccount was deliberately avoided for exactly this reason).
2026-07-17 16:42:40 -07:00
..