The previous transaction is needed by hardware wallets to sign a transaction. This is a weirdness in the hardware wallet libraries, probably related to BTC support.
Electrum ABC adds a "prev_tx" field to coins before attempting to sign a transaction because it may be needed in two situations:
- when the wallet is a hardware wallet (has at least one hardware keystore), via Wallet.add_hw_info
- when the coin is exported by a watching-only wallet whose xpub or pubkey originates from a hardware wallet (the pubkey's origin cannot be deduced from the keystore type, so it is added all the time)
The value can be initially missing when constructing a incomplete transaction, and be added later by the wallet. So remove the related assertion in TxInput.to_coin_dict
Don't add the "value" field for already complete transactions. I'm not aware of any use case for this.