Tests - operation in Hive - Power down
Operation: Power down - withdraw_vesting_operation, // 4
Configuration:
HIVE_VESTING_WITHDRAW_INTERVALS, default mainnet value: 13 weeks
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS (HIVE_CASHOUT_WINDOW_SECONDS), default mainnet value: 1 week
Test cases:
-
1. User creates Power.
Expected results:
Expected result:
- After operation, the HP balance is not reduced.
- RC
current_mana
is reduced. - RC
max_mana
is reduced. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), RCmax_mana
is reduced. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the virtual operation: fill_vesting_withdraw is generated. - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the HP balance is reduced by {amount}/13. - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), RCmax_mana
is reduced. - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the virtual operation: fill_vesting_withdraw is generated. - To be checked from 3 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 3 week) toHIVE_VESTING_WITHDRAW_INTERVALS
-HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 12 week) weeks after operation:
- The virtual operation: fill_vesting_withdraw is generated.
- The HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- The Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- RC
max_mana
is reduced.
- After
HIVE_VESTING_WITHDRAW_INTERVALS
:
- The virtual operation: fill_vesting_withdraw is generated.
- The HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- The Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- RC
max_mana
is not reduced.
Test case:
-
2. User wants to stop Power down a few days after creating Power down.
Preconditions:
X = a few days after creating Power down
is between 2 * HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
and 3 * HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(for example: 20 days).
Steps:
Step 1: User creates Power down.
Expected result:
- After operation, the HP balance is not reduced.
- RC
current_mana
is reduced. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the HP balance is reduced by {amount}/13. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the Hive balance is increased by {amount}/13. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), RCmax_mana
is reduced. - After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the virtual operation: fill_vesting_withdraw is generated. - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), RCmax_mana
is reduced. - After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the virtual operation: fill_vesting_withdraw is generated.
Step 2: User creates a Power down with {amount} = 0 X days after creating Power down.
Expected result:
- After 3 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 3 week): HP and Hive balance is not updated. - After 3 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 3 week): RC max_mana is increased (compare to RC max_mana from point 9, step 1. Already sent RC max_mana is sent back).
Test case:
-
3. User wants to increase the amount of Power down.
Preconditions:
- Amount1 (Power down 1) < amount2 (Power down 2)
- X =
a few days after creating Power down
is between 2 *HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
and 3 *HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(for example: 20 days).
Steps:
Step 1: User creates Power down with amount1.
Expected result:
- (Power down 1) After operation, the HP balance is not reduced.
- (Power down 1) RC
current_mana
is reduced. - (Power down 1) RC
max_mana
is reduced. - (Power down 1) After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - (Power down 1) After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - (Power down 1) After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), RCmax_mana
is reduced. - (Power down 1) After
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the virtual operation: fill_vesting_withdraw is generated. - (Power down 1) After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - (Power down 1) After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13). - (Power down 1) After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), RCmax_mana
is reduced. - (Power down 1) After 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week), the virtual operation: fill_vesting_withdraw is generated.
Step 2: User creates a Power down with {amount} = amount2 X after creating Power down 1.
Expected result:
- (Power down 2) After X, RC
current_mana
is reduced. - (Power down 2) After X, the HP balance is not reduced.
- (Power down 1) After 3 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 3 week): HP and Hive balance is not updated. - (Power down 2) After X days + 1*
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the HP balance is reduced by {amount2}/13. - (Power down 2) After X days + 1*
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the Hive balance is increased by {amount2}/13. - (Power down 2) After X days + 1*
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), RCmax_mana
is reduced. - (Power down 2) After X days + 1*
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 1 week), the virtual operation: fill_vesting_withdraw is generated. - To be checked from 2 *
HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(mainnet value: 2 week) toHIVE_VESTING_WITHDRAW_INTERVALS
(mainnet value: 12 week) weeks after operation:
- (Power down 2) The Hive balance is increased by {amount2}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- (Power down 2) RC
max_mana
is reduced. - (Power down 2) The virtual operation: fill_vesting_withdraw is generated.
- After
HIVE_VESTING_WITHDRAW_INTERVALS
:
- The virtual operation: fill_vesting_withdraw is generated.
- The HP balance is reduced by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- The Hive balance is increased by {amount}/HIVE_VESTING_WITHDRAW_INTERVALS (13).
- RC
max_mana
is not reduced..
Test case:
-
4. User wants to decrease the amount of Power down.
Preconditions:
- Amount1 (Power down 1) > amount2 (Power down 2).
- X =
a few days after creating Power down
is between 2 *HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
and 3 *HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS
(for example: 20 days).
Repeat steps and checks from test case 3.