[errors] use custom error codes in deposit handler
Similar to #1810, most errors that occur when handling deposits are redacted due to having code 1. The error messages are valuable to users for determining exactly what went wrong (bad memo, insufficient balance, etc).
We should update the errors in handler_deposit (and potentially other handlers) to return more informative/unredacted errors where appropriate.
This also helps in debugging situations such as smoketests. When an error occurs on a tx, there is no log message to point to why. Example:
E[2024-03-24 02:10:19,079] BlockTxBroadcastResult(height=1166, txhash='6643E5A609BA44C2258E2ABEF2EE97A8134B710C787B1AFECBBE85510EDC0AF9', raw_log='internal', gas_wanted=0, gas_used=80248, logs=None, code=1, codespace='undefined', info=None, data=None, timestamp=None)
See !3489 (comment 1827384790) for more context from @Multipartite
Edited by akrokr