Current situation
There is a hardcoded limit of 20 in the number of shielded inputs a transaction can have (see https://github.com/BeamMW/beam/blob/master/core/block_crypt.cpp#L2241).
However, when a transaction needs to spend more than 20, the error messages are simply:
Failed. Not enough inputs to process the transaction
Transaction failed. Rollback...
Remark 1: This was observed in a wallet where all MW UTXOs had been sent to another wallet (with option --utxo) so that there was only shielded UTXOs left available.
Remark 2: The node also checks this here: https://github.com/BeamMW/beam/blob/master/node/node.cpp#L2805
Proposed solution
A more explicit message should be given when the transaction failed precisely because of reaching this 20 shielded UTXOs limit. Because that would be the only way for the user to know that it needs first to consolidate some UTXOs by sending a lower amount to itself.
The message could be:
Failed. Too many shielded inputs to process the transaction.
Current situation
There is a hardcoded limit of 20 in the number of shielded inputs a transaction can have (see https://github.com/BeamMW/beam/blob/master/core/block_crypt.cpp#L2241).
However, when a transaction needs to spend more than 20, the error messages are simply:
Remark 1: This was observed in a wallet where all MW UTXOs had been sent to another wallet (with option --utxo) so that there was only shielded UTXOs left available.
Remark 2: The node also checks this here: https://github.com/BeamMW/beam/blob/master/node/node.cpp#L2805
Proposed solution
A more explicit message should be given when the transaction failed precisely because of reaching this 20 shielded UTXOs limit. Because that would be the only way for the user to know that it needs first to consolidate some UTXOs by sending a lower amount to itself.
The message could be: