Expand description
Defines traits for blocking (synchronous) and non-blocking (asynchronous) communication with a Solana server as well as a trait that encompasses both.
Synchronous implementations are expected to create transactions, sign them, and send them with multiple retries, updating valid_from and resigning as-needed.
Asynchronous implementations are expected to create transactions, sign them, and send them but without waiting to see if the server accepted it.