diff --git a/ledger/src/leader_schedule_cache.rs b/ledger/src/leader_schedule_cache.rs index 9e007356d7..cc3917b9a9 100644 --- a/ledger/src/leader_schedule_cache.rs +++ b/ledger/src/leader_schedule_cache.rs @@ -396,11 +396,11 @@ mod tests { ); assert_eq!( cache.next_leader_slot(&pubkey, 0, &bank, None), - Some((1, 6047999)) + Some((1, 863999)) ); assert_eq!( cache.next_leader_slot(&pubkey, 1, &bank, None), - Some((2, 6047999)) + Some((2, 863999)) ); assert_eq!( cache.next_leader_slot( diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 9b80193bbb..c355269e18 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -2901,7 +2901,7 @@ mod tests { #[test] #[allow(clippy::cognitive_complexity)] - fn test_rent() { + fn test_rent_complex() { let mock_program_id = Pubkey::new(&[2u8; 32]); let (mut genesis_config, _mint_keypair) = create_genesis_config(10); @@ -2941,6 +2941,8 @@ mod tests { generic_rent_due_for_system_account, ); + let magic_rent_number = 131; // yuck, derive this value programmatically one day + let t1 = system_transaction::transfer( &keypairs[0], &keypairs[1].pubkey(), @@ -2962,7 +2964,7 @@ mod tests { let t4 = system_transaction::transfer( &keypairs[6], &keypairs[7].pubkey(), - 48991, + generic_rent_due_for_system_account + 1, genesis_config.hash(), ); let t5 = system_transaction::transfer( @@ -3002,19 +3004,19 @@ mod tests { let mut rent_collected = 0; - // 48992 - 48990(Rent) - 1(transfer) + // 48992 - generic_rent_due_for_system_account(Rent) - 1(transfer) assert_eq!(bank.get_balance(&keypairs[0].pubkey()), 1); rent_collected += generic_rent_due_for_system_account; - // 48992 - 48990(Rent) + 1(transfer) + // 48992 - generic_rent_due_for_system_account(Rent) + 1(transfer) assert_eq!(bank.get_balance(&keypairs[1].pubkey()), 3); rent_collected += generic_rent_due_for_system_account; - // 48992 - 48990(Rent) - 1(transfer) + // 48992 - generic_rent_due_for_system_account(Rent) - 1(transfer) assert_eq!(bank.get_balance(&keypairs[2].pubkey()), 1); rent_collected += generic_rent_due_for_system_account; - // 48992 - 48990(Rent) + 1(transfer) + // 48992 - generic_rent_due_for_system_account(Rent) + 1(transfer) assert_eq!(bank.get_balance(&keypairs[3].pubkey()), 3); rent_collected += generic_rent_due_for_system_account; @@ -3022,45 +3024,46 @@ mod tests { assert_eq!(bank.get_balance(&keypairs[4].pubkey()), 10); assert_eq!(bank.get_balance(&keypairs[5].pubkey()), 10); - // 98004 - 48990(Rent) - 48991(transfer) + // 98004 - generic_rent_due_for_system_account(Rent) - 48991(transfer) assert_eq!(bank.get_balance(&keypairs[6].pubkey()), 23); rent_collected += generic_rent_due_for_system_account; - // 0 + 48990(transfer) - 917(Rent) + // 0 + 48990(transfer) - magic_rent_number(Rent) assert_eq!( bank.get_balance(&keypairs[7].pubkey()), - generic_rent_due_for_system_account + 1 - 917 + generic_rent_due_for_system_account + 1 - magic_rent_number ); + // Epoch should be updated // Rent deducted on store side let account8 = bank.get_account(&keypairs[7].pubkey()).unwrap(); // Epoch should be set correctly. assert_eq!(account8.rent_epoch, bank.epoch + 1); - rent_collected += 917; + rent_collected += magic_rent_number; - // 49921 - 48900(Rent) - 929(Transfer) + // 49921 - generic_rent_due_for_system_account(Rent) - 929(Transfer) assert_eq!(bank.get_balance(&keypairs[8].pubkey()), 2); rent_collected += generic_rent_due_for_system_account; let account10 = bank.get_account(&keypairs[9].pubkey()).unwrap(); // Account was overwritten at load time, since it didn't have sufficient balance to pay rent - // Then, at store time we deducted 917 rent for the current epoch, once it has balance + // Then, at store time we deducted `magic_rent_number` rent for the current epoch, once it has balance assert_eq!(account10.rent_epoch, bank.epoch + 1); // account data is blank now assert_eq!(account10.data.len(), 0); - // 10 - 10(Rent) + 929(Transfer) - 917(Rent) - assert_eq!(account10.lamports, 12); - rent_collected += 927; + // 10 - 10(Rent) + 929(Transfer) - magic_rent_number(Rent) + assert_eq!(account10.lamports, 929 - magic_rent_number); + rent_collected += magic_rent_number + 10; - // 48993 - 48990(Rent) + // 48993 - generic_rent_due_for_system_account(Rent) assert_eq!(bank.get_balance(&keypairs[10].pubkey()), 3); rent_collected += generic_rent_due_for_system_account; - // 48993 - 48990(Rent) + 1(Addition by program) + // 48993 - generic_rent_due_for_system_account(Rent) + 1(Addition by program) assert_eq!(bank.get_balance(&keypairs[11].pubkey()), 4); rent_collected += generic_rent_due_for_system_account; - // 48993 - 48990(Rent) - 1(Deduction by program) + // 48993 - generic_rent_due_for_system_account(Rent) - 1(Deduction by program) assert_eq!(bank.get_balance(&keypairs[12].pubkey()), 2); rent_collected += generic_rent_due_for_system_account; diff --git a/sdk/src/clock.rs b/sdk/src/clock.rs index 0024562b97..275fb37333 100644 --- a/sdk/src/clock.rs +++ b/sdk/src/clock.rs @@ -17,12 +17,10 @@ pub const DEFAULT_HASHES_PER_SECOND: u64 = 2_000_000; pub const DEFAULT_DEV_SLOTS_PER_EPOCH: u64 = 8192; pub const SECONDS_PER_DAY: u64 = 24 * 60 * 60; -pub const SECONDS_PER_WEEK: u64 = 7 * SECONDS_PER_DAY; -pub const SECONDS_PER_FORTNIGHT: u64 = 2 * SECONDS_PER_WEEK; -pub const TICKS_PER_FORTNIGHT: u64 = DEFAULT_TICKS_PER_SECOND * SECONDS_PER_FORTNIGHT; +pub const TICKS_PER_DAY: u64 = DEFAULT_TICKS_PER_SECOND * SECONDS_PER_DAY; -// 1 Epoch ~= 2 weeks -pub const DEFAULT_SLOTS_PER_EPOCH: u64 = TICKS_PER_FORTNIGHT / DEFAULT_TICKS_PER_SLOT; +// 1 Epoch ~= 2 days +pub const DEFAULT_SLOTS_PER_EPOCH: u64 = 2 * TICKS_PER_DAY / DEFAULT_TICKS_PER_SLOT; // Storage segment configuration pub const DEFAULT_SLOTS_PER_SEGMENT: u64 = 1024;