Claim a restored artifact's index so a later allocation cannot reissue it —
which would derive that artifact's preimage a second time, for a different
one.
Monotonic, and a no-op wherever there is no index to reserve — a shared-key
descriptor, or another seed's artifact. Restores iterate whole histories, so
an artifact this wallet has nothing to adopt for must not abort the loop.
Telling "another seed's" apart from a failure needs
HDWalletCapable.signerForDescriptor, so an allocation-capable wallet
that does not also implement it gets only the watermark call's own untyped
refusal, and a foreign artifact reaches the caller as an error rather than a
skip. Every wallet shipped here implements both.
Claim a restored artifact's index so a later allocation cannot reissue it — which would derive that artifact's preimage a second time, for a different one.
Monotonic, and a no-op wherever there is no index to reserve — a shared-key descriptor, or another seed's artifact. Restores iterate whole histories, so an artifact this wallet has nothing to adopt for must not abort the loop.
Telling "another seed's" apart from a failure needs HDWalletCapable.signerForDescriptor, so an allocation-capable wallet that does not also implement it gets only the watermark call's own untyped refusal, and a foreign artifact reaches the caller as an error rather than a skip. Every wallet shipped here implements both.