recipientIsSelf property
True when the package POSITIVELY knows the funds return to THIS wallet (shield / unshield / sweep / reclaim, and an interactive send whose proposal detected an own-address recipient). False means "external or unknown" — never treat false as a verified-external claim. Lets a host prompt render "internal transfer, funds stay in your wallet" honestly.
COUPLING: the interactive-send arm forwards the core's
selfSend, whose Rust semantics are ANY-leg (true if any payment leg
pays an own address). That equals the whole-spend claim above ONLY
because the send flow composes a SINGLE-payment URI by construction
(see the note at the send controller's confirm site). Any future path
that proposes a multi-payment request (scan-to-pay ZIP-321, a host
prefill) must NOT forward selfSend into this field unchanged — a
mixed request (own + external legs) would read true while money
leaves the wallet.
Implementation
final bool recipientIsSelf;