* Don't use move semantics if not needed (#8793)
* SDK: Deboilerplate `TransportError` with thiserror
* Enable interchange between `TransportError` and `ClientError`
* SDK: Retval consistency between `Client` and `AsyncClient` traits
* Client: Introduce/use `Result` type
* Client: Remove unused `RpcResponseIn` type
* Client: Rename `RpcResponse` to more appropriate `RpcResult`
* Client: Death to `io::Result` return types
* Client: Struct-ify `ClientError`
* Client: Add optional `command` parameter to `ClientError`
* RpcClient: Stop abusing `io::Error` (low-fruit)
* ClientError: Use `thiserror`'s `Display` impl
* Extend `RpcError`'s utility
* RpcClient: Stop abusing `io::Error` (the rest)
* CLI: Shim `main()` so we can `Display` format errors
* claputils: format input validator errors with `Display`
They are intended to be displayed to users
* SDK: `thiserror` for hash and sig parse erros
* Keygen: Shim main to format errors with `Display`
* SDK: `thiserror` for `InstructionError`
* CLI: `thiserror` for `CliError`
* CLI: Format user messages with `Display`
* Client: Tweak `Display` for `ClientError`
* RpcClient: Improve messaging when TX cannot be confirmed
* fu death io res retval
* CLI/Keygen - fix shell return value on error
* Tweak `InstructionError` `Display` messages as per review
* Cleanup hackjob return code fix
* Embrace that which you hate most
* Too much...
Co-authored-by: Jack May <jack@solana.com>
* watchtower: send error message as notification
* watchtower: send all clear notification when ok again
* watchtower: add twilio sms notifications
* watchtower: flag to suppress duplicate notifications
* remove trailing space character
* changes as per suggestion on PR
* all changes together
* cargo fmt