* Deprecate commitment variants
* Add new CommitmentConfig builders
* Add helpers to avoid allowing deprecated variants
* Remove deprecated transaction-status code
* Include new commitment variants in runtime commitment; allow deprecated as long as old variants persist
* Remove deprecated banks code
* Remove deprecated variants in core; allow deprecated in rpc/rpc-subscriptions for now
* Heavier hand with rpc/rpc-subscription commitment
* Remove deprecated variants from local-cluster
* Remove deprecated variants from various tools
* Remove deprecated variants from validator
* Update docs
* Remove deprecated client code
* Add new variants to cli; remove deprecated variants as possible
* Don't send new commitment variants to old clusters
* Retain deprecated method in test_validator_saves_tower
* Fix clippy matches! suggestion for BPF solana-sdk legacy compile test
* Refactor node version check to handle commitment variants and transaction encoding
* Hide deprecated variants from cli help
* Add cli App comments
* Add optimistically_confirmed field to TransactionStatus
* Update docs
* Convert new field to confirmation_status
* Update docs to confirmationStatus
* Update variants
* Update docs
* Just Confirmed
* Dump PickleDb after transaction sends/confirmation
* Dump PickleDb on ctrlc
* Don't exit during tests
* Add build_messages helper and test db dump
* Add send_messages helper and test db dump
* Add combined test
* Add log_transaction_confirmations helper and test db dump
* Add update_finalized_transactions test
* Return error instead of process::exit
* Close TestValidator
* Add helpers to covert between sdk types
* Add distribute-spl-tokens to args and arg-parsing
* Build spl-token transfer-checked instructions
* Check spl-token balances properly
* Add display handling to support spl-token
* Small refactor to allow failures in allocation iter
* Use Associated Token Account for spl-token distributions
* Add spl token support to balances command
* Update readme
* Add spl-token tests
* Rename spl-tokens file
* Move a couple more things out of commands
* Stop requiring lockup_date heading for non-stake distributions
* Use epsilon for allocation retention
* Revert solana-tokens to RpcClient
* Fixup check_payer_balances tests
* Use RpcClient::new_with_commitment in other tests
Co-authored-by: Tyera Eulberg <tyera@solana.com>
* Add TestValidator::new_with_fees constructor, and warning for low bootstrap_validator_lamports
* Add logging to solana-tokens integration test to help catch low bootstrap_validator_lamports in the future
* Reasonable TestValidator mint_lamports
* Make Message::new_with_payer the default constructor
* Remove Transaction::new_[un]signed_instructions
These guess the fee-payer instead of stating it explicitly
* Use a trait object in solana-tokens' ThinClient
* Inline arg resolution
Not worth the code complexity
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
When the root slot is beyond the last valid slot, we can say
with certainty that the blockhash is expired. Unfortunately,
we still can't say the transaction didn't land. It may have
landed a long time ago and the validator has since purged
its transaction status.