* Move EpochRewardsHasher to solana-sdk
* Cargo.lock
* Apparently we're allowing arithmetic_side_effects in all of runtime
* Move allow stmt to block instead of module
* Also allow in test mod
* Refactor bank load_and_execute_transactions
* Remove redundant clippy annotation
* Report check time where it is done in load_and_execute_transactions
* remove println from a test
* sync fee_structure with fee_rate_governor;
remove congestion_multiplier from calculacte_fee(), leave parameters unused for now.
* Update genesis processing to have a fallback collector id for tests
* DCOU-ify the collector id for tests parameter (#1902)
* wrap test_collector_id in DCOU
* rename param to collector_id_for_tests
* fix program test
* fix dcou
---------
Co-authored-by: Brooks <brooks@prumo.org>
* use PROGRAM_OWNER + program data for account executable
mock account data with executable_meta in precompiled program and update
test_bank_hash_consistency test
pr: return const slice and add comments
pr: use ReadableAccount
use const to get rid of magic number
add featuregate disable_bpf_loader_instructions to disable bpf loader management instructions, and deprecate_executable_meta_update_in_bpf_loader to deprecate executable flag update in bpf loader
deprecate usage of executable in Account
fix a test
fix sbp bench
fix sbf program tests
add feature gate to account and borrowed account apis
fix tests
more test fixes
* restore bpf_loader v2 tests
---------
Co-authored-by: HaoranYi <haoran.yi@solana.com>
```
warning: in a `match` scrutinee, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a `let`
--> runtime/src/accounts/mod.rs:483:82
|
483 | let min_balance = match get_system_account_kind(payer_account).ok_or_else(|| {
| __________________________________________________________________________________^
484 | | error_counters.invalid_account_for_fee += 1;
485 | | TransactionError::InvalidAccountForFee
486 | | })? {
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blocks_in_conditions
= note: `#[warn(clippy::blocks_in_conditions)]` on by default
warning: this `let...else` may be rewritten with the `?` operator
--> runtime/src/bank.rs:3093:21
|
3093 | / let Some(vote_account) = get_vote_account(&vote_pubkey) else {
3094 | | return None;
3095 | | };
| |______________________^ help: replace it with: `let vote_account = get_vote_account(&vote_pubkey)?;`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark
= note: `#[warn(clippy::question_mark)]` on by default
warning: this `let...else` may be rewritten with the `?` operator
--> runtime/src/bank.rs:4778:17
|
4778 | / let Some((_, account)) = accounts.get(i) else {
4779 | | return None;
4780 | | };
| |__________________^ help: replace it with: `let (_, account) = accounts.get(i)?;`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark
Checking solana-bench-streamer v1.18.0 (/Users/brooks/src/solana/bench-streamer)
warning: `solana-runtime` (lib) generated 3 warnings
```
The initial implementation only allowed for outputting details for one
bank/slot. There are several usecases that could take advantage of the
file being able to contain details for multiple banks.
So, this PR adjusts the structure to contain details about multiple
banks. Note that using a basic diff will not work for comparing the old
format to this new format. Instead, a basic transform with jq will be
necessary to do so.