* Add fallible send methods, and rpc_client helper
* Add helper to return RpcClient url
* Implement BenchTpsClient for TpuClient
* Add cli rpc and identity handling
* Handle different kinds of clients in main, use TpuClient
* Add tpu_client integration test
* transaction-status: Add return data to meta
* Add return data to simulation results
* Use pretty-hex for printing return data
* Update arg name, make TransactionRecord struct
* Rename TransactionRecord -> ExecutionRecord
We have too many ways of sending transactions, and too many
reimplementations of the same logic all over the place.
The program deploy logic and stake-o-matic currently make the
most use of the TPU client, so this merges their implementations into
one place to be reused by both. Yay for consolidation!
* Add more docs for RpcClient
* Use custom mocks in rpc_client examples
* Move create_rpc_client_mocks into rpc_client module
Signed-off-by: Brian Anderson <andersrb@gmail.com>
* Update client/src/rpc_client.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* Update RpcClient docs per review feedback
* Consistently link 'commitment level' in RpcClient docs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
#### Problem
There's no way to get incremental snapshot information from RPC.
#### Summary of Changes
- Add new RPC method, `getHighestSnapshotSlot` that returns a `SnapshotSlotInfo`, which contains both the highest full snapshot slot, and the highest incremental snapshot slot _based on_ the full snapshot.
- Deprecate old RPC method, `getSnapshotSlot`
- Update API docs
Fixes#19579
* Add deprecated tag to Bank::get_blockhash_last_valid_slot
* Update SendTransactionService to use last_valid_block_height
* Update solana-tokens to use last_valid_block_height
* Remove dangling file
* Update solana program to use last_valid_block_height
* Update Banks crates to use last_valid_block_height
* Add some docs for RpcSender, HttpSender, MockSender
* Support SimulateTransaction in MockSender
* Add docs for RpcClient constructors
* Add some more RpcClient examples
* rustfmt
* Reflow docs in rpc_client and friends
* Add optimistically_confirmed field to TransactionStatus
* Update docs
* Convert new field to confirmation_status
* Update docs to confirmationStatus
* Update variants
* Update docs
* Just Confirmed
* Deploy: send write transactions to leader tpu
* Less apparent stalling during confirmation
* Add EpochInfo mock
* Only get cluster nodes once
* Send deploy writes to next leader
* Check program account before attempting to create it
* Use last_valid_slot to timeout status checks
* Include transaction history in RpcClient::get_signature_statuses requests
* Improve solana-deploy send-transactions
* Clippy
* Improve mock deploy test
* Review comments