@@ -1004,6 +1004,9 @@ fn test_publisher_stake_caps() {
1004
1004
publishers_with_expected_caps[ 2 ] . 0 ,
1005
1005
] ,
1006
1006
) ,
1007
+ generate_price ( & bank, b"seeds_5" , false , & [ ] ) ,
1008
+
1009
+
1007
1010
] ;
1008
1011
1009
1012
// Publishers are sorted in the publisher stake caps message so we sort them here too
@@ -1019,7 +1022,7 @@ fn test_publisher_stake_caps() {
1019
1022
. sorted_unstable ( )
1020
1023
. dedup ( )
1021
1024
. collect :: < Vec < _ > > ( ) ;
1022
- assert_eq ! ( messages. len( ) , 8 ) ;
1025
+ assert_eq ! ( messages. len( ) , 10 ) ;
1023
1026
1024
1027
// We turn on the feature to add publisher stake caps to the accumulator but it won't be active until next epoch
1025
1028
activate_feature (
@@ -1054,7 +1057,7 @@ fn test_publisher_stake_caps() {
1054
1057
1055
1058
// Now the messages contain the publisher caps message
1056
1059
messages. push ( & publisher_caps_message) ;
1057
- assert_eq ! ( messages. len( ) , 9 ) ;
1060
+ assert_eq ! ( messages. len( ) , 11 ) ;
1058
1061
1059
1062
let sequence_tracker_before_bank_freeze = get_acc_sequence_tracker ( & bank) ;
1060
1063
bank. freeze ( ) ;
@@ -1066,6 +1069,24 @@ fn test_publisher_stake_caps() {
1066
1069
1067
1070
bank = new_from_parent ( & Arc :: new ( bank) ) ;
1068
1071
1072
+ // We add some badly formatted stake cap parameters
1073
+ let mut stake_cap_parameters_account =
1074
+ AccountSharedData :: new ( 42 , size_of :: < StakeCapParameters > ( ) , & ORACLE_PID ) ;
1075
+ stake_cap_parameters_account. set_data (
1076
+ vec ! [ 1 , 2 , 3 , 4 ] ,
1077
+ ) ;
1078
+ bank. store_account ( & STAKE_CAPS_PARAMETERS_ADDR , & stake_cap_parameters_account) ;
1079
+
1080
+ // Nothing should change as the stake cap parameters are invalid
1081
+ let sequence_tracker_before_bank_freeze = get_acc_sequence_tracker ( & bank) ;
1082
+ bank. freeze ( ) ;
1083
+ check_accumulator_state_matches_messages (
1084
+ & bank,
1085
+ & sequence_tracker_before_bank_freeze,
1086
+ & messages,
1087
+ ) ;
1088
+ bank = new_from_parent ( & Arc :: new ( bank) ) ;
1089
+
1069
1090
// Now we update the stake cap parameters
1070
1091
let mut stake_cap_parameters_account =
1071
1092
AccountSharedData :: new ( 42 , size_of :: < StakeCapParameters > ( ) , & ORACLE_PID ) ;
@@ -1095,7 +1116,7 @@ fn test_publisher_stake_caps() {
1095
1116
// Update the publisher caps message in the message arrays to match the new parameters
1096
1117
let last_element_index = messages. len ( ) - 1 ;
1097
1118
messages[ last_element_index] = & publisher_caps_message_with_new_parameters;
1098
- assert_eq ! ( messages. len( ) , 9 ) ;
1119
+ assert_eq ! ( messages. len( ) , 11 ) ;
1099
1120
1100
1121
let sequence_tracker_before_bank_freeze = get_acc_sequence_tracker ( & bank) ;
1101
1122
bank. freeze ( ) ;
0 commit comments