BCHdeserialize
Rehydrates this destination from the bytes produced by serializeDerived.
Expected stream layout (matches the writer exactly): secret: varByteshdIndex: i64contractName: nullString
Mutates this instance in place — the deserialization constructor pattern (see Pay2PubKeyTemplateDestination's secondary constructor in payDestination.kt) instantiates with placeholder primary-ctor args and then calls this to overwrite them with the real values from the stream.
Does NOT call super.BCHdeserialize(): the parent's version expects the format written by Pay2TemplateDestination.serializeDerived (template / constraint / visibleConstraint blobs), which we deliberately don't emit. Instead we re-run the init logic to rebuild constraint / visibleConstraint from the loaded primary inputs — same reason serializeDerived skips those fields.
Restricted to DISK format for symmetry with serializeDerived.