walletTransparentAddressReadProvider top-level property

FutureProviderFamily<String, Object?> walletTransparentAddressReadProvider
final

The wallet's TRANSPARENT receive address (Recv-2 / ADR-0528) — the external-scope P2PKH t-address the receive screen shows when the user toggles to "Transparent". The walletReceiveAddressReadProvider pair's exact mirror (#385): session-lifetime cached (this is the SLOW derive the device walk measured at multiple seconds per visit), identity-fenced (the same duress-leak sibling), same honest-degradation timeout. NOT key material (PUBLIC by design; §5.4 NEVER-LOG still applies).

Implementation

final walletTransparentAddressReadProvider = FutureProvider.autoDispose
    .family<String, Object?>((ref, identity) {
      // Dying-element guard — see walletSnapshotReadProvider; distinct
      // messages per cause (#386, the shielded twin's note).
      if (ref.watch(walletIdentityProvider) != identity) {
        return Future<String>.error(
          StateError(
            'walletTransparentAddressReadProvider read under a superseded '
            'wallet identity',
          ),
        );
      }
      final session = ref.watch(walletSessionProvider);
      if (session == null) {
        return Future<String>.error(
          StateError(
            'walletTransparentAddressReadProvider read with no wallet session',
          ),
        );
      }
      return session.currentTransparentAddress().timeout(
        walletAddressDeriveTimeout,
      );
    }, retry: walletNoSilentRetry);