Right now the issue is that when transaction funds are received and shielded, the shielding status is determined based on whether it's been mined or not but receiving transaction Status check is dependent on a hardcoded number of confirmation, defined by
/// The number of blocks to allow before considering our data to be stale. This usually helps with what to do when
/// returning from the background and is exposed via the Synchronizer's isStale function.
public static let defaultStaleTolerance: Int = 10
and that is not correct approach.