@@ -56,11 +56,6 @@ async fn setup(
56
56
)
57
57
. await ;
58
58
59
- let first_normal_slot = context. genesis_config ( ) . epoch_schedule . first_normal_slot ;
60
- let slots_per_epoch = context. genesis_config ( ) . epoch_schedule . slots_per_epoch ;
61
- let mut slot = first_normal_slot;
62
- context. warp_to_slot ( slot) . unwrap ( ) ;
63
-
64
59
let user = Keypair :: new ( ) ;
65
60
// make stake account
66
61
let deposit_stake = Keypair :: new ( ) ;
@@ -92,8 +87,8 @@ async fn setup(
92
87
)
93
88
. await ;
94
89
95
- slot += slots_per_epoch ;
96
- context. warp_to_slot ( slot ) . unwrap ( ) ;
90
+ let first_normal_slot = context . genesis_config ( ) . epoch_schedule . first_normal_slot ;
91
+ context. warp_to_slot ( first_normal_slot ) . unwrap ( ) ;
97
92
stake_pool_accounts
98
93
. update_all (
99
94
& mut context. banks_client ,
@@ -805,226 +800,3 @@ async fn fail_with_wrong_mint_for_receiver_acc() {
805
800
}
806
801
}
807
802
}
808
-
809
- #[ tokio:: test]
810
- async fn fail_with_uninitialized_validator_list ( ) { } // TODO
811
-
812
- #[ tokio:: test]
813
- async fn fail_with_out_of_dated_pool_balances ( ) { } // TODO
814
-
815
- #[ tokio:: test]
816
- async fn success_with_preferred_deposit ( ) {
817
- let (
818
- mut context,
819
- stake_pool_accounts,
820
- validator_stake,
821
- user,
822
- deposit_stake,
823
- pool_token_account,
824
- _stake_lamports,
825
- ) = setup ( spl_token:: id ( ) ) . await ;
826
-
827
- stake_pool_accounts
828
- . set_preferred_validator (
829
- & mut context. banks_client ,
830
- & context. payer ,
831
- & context. last_blockhash ,
832
- instruction:: PreferredValidatorType :: Deposit ,
833
- Some ( validator_stake. vote . pubkey ( ) ) ,
834
- )
835
- . await ;
836
-
837
- let error = stake_pool_accounts
838
- . deposit_stake (
839
- & mut context. banks_client ,
840
- & context. payer ,
841
- & context. last_blockhash ,
842
- & deposit_stake,
843
- & pool_token_account,
844
- & validator_stake. stake_account ,
845
- & user,
846
- )
847
- . await ;
848
- assert ! ( error. is_none( ) ) ;
849
- }
850
-
851
- #[ tokio:: test]
852
- async fn fail_with_wrong_preferred_deposit ( ) {
853
- let (
854
- mut context,
855
- stake_pool_accounts,
856
- validator_stake,
857
- user,
858
- deposit_stake,
859
- pool_token_account,
860
- _stake_lamports,
861
- ) = setup ( spl_token:: id ( ) ) . await ;
862
-
863
- let preferred_validator = simple_add_validator_to_pool (
864
- & mut context. banks_client ,
865
- & context. payer ,
866
- & context. last_blockhash ,
867
- & stake_pool_accounts,
868
- None ,
869
- )
870
- . await ;
871
-
872
- stake_pool_accounts
873
- . set_preferred_validator (
874
- & mut context. banks_client ,
875
- & context. payer ,
876
- & context. last_blockhash ,
877
- instruction:: PreferredValidatorType :: Deposit ,
878
- Some ( preferred_validator. vote . pubkey ( ) ) ,
879
- )
880
- . await ;
881
-
882
- let error = stake_pool_accounts
883
- . deposit_stake (
884
- & mut context. banks_client ,
885
- & context. payer ,
886
- & context. last_blockhash ,
887
- & deposit_stake,
888
- & pool_token_account,
889
- & validator_stake. stake_account ,
890
- & user,
891
- )
892
- . await
893
- . unwrap ( )
894
- . unwrap ( ) ;
895
- match error {
896
- TransactionError :: InstructionError ( _, InstructionError :: Custom ( error_index) ) => {
897
- assert_eq ! (
898
- error_index,
899
- StakePoolError :: IncorrectDepositVoteAddress as u32
900
- ) ;
901
- }
902
- _ => panic ! ( "Wrong error occurs while try to make a deposit with wrong stake program ID" ) ,
903
- }
904
- }
905
-
906
- #[ tokio:: test]
907
- async fn success_with_referral_fee ( ) {
908
- let (
909
- mut context,
910
- stake_pool_accounts,
911
- validator_stake_account,
912
- user,
913
- deposit_stake,
914
- pool_token_account,
915
- stake_lamports,
916
- ) = setup ( spl_token:: id ( ) ) . await ;
917
-
918
- let referrer = Keypair :: new ( ) ;
919
- let referrer_token_account = Keypair :: new ( ) ;
920
- create_token_account (
921
- & mut context. banks_client ,
922
- & context. payer ,
923
- & context. last_blockhash ,
924
- & stake_pool_accounts. token_program_id ,
925
- & referrer_token_account,
926
- & stake_pool_accounts. pool_mint . pubkey ( ) ,
927
- & referrer,
928
- & [ ] ,
929
- )
930
- . await
931
- . unwrap ( ) ;
932
-
933
- let referrer_balance_pre =
934
- get_token_balance ( & mut context. banks_client , & referrer_token_account. pubkey ( ) ) . await ;
935
-
936
- let mut transaction = Transaction :: new_with_payer (
937
- & instruction:: deposit_stake (
938
- & id ( ) ,
939
- & stake_pool_accounts. stake_pool . pubkey ( ) ,
940
- & stake_pool_accounts. validator_list . pubkey ( ) ,
941
- & stake_pool_accounts. withdraw_authority ,
942
- & deposit_stake,
943
- & user. pubkey ( ) ,
944
- & validator_stake_account. stake_account ,
945
- & stake_pool_accounts. reserve_stake . pubkey ( ) ,
946
- & pool_token_account,
947
- & stake_pool_accounts. pool_fee_account . pubkey ( ) ,
948
- & referrer_token_account. pubkey ( ) ,
949
- & stake_pool_accounts. pool_mint . pubkey ( ) ,
950
- & spl_token:: id ( ) ,
951
- ) ,
952
- Some ( & context. payer . pubkey ( ) ) ,
953
- ) ;
954
- transaction. sign ( & [ & context. payer , & user] , context. last_blockhash ) ;
955
- context
956
- . banks_client
957
- . process_transaction ( transaction)
958
- . await
959
- . unwrap ( ) ;
960
-
961
- let referrer_balance_post =
962
- get_token_balance ( & mut context. banks_client , & referrer_token_account. pubkey ( ) ) . await ;
963
- let stake_pool = get_account (
964
- & mut context. banks_client ,
965
- & stake_pool_accounts. stake_pool . pubkey ( ) ,
966
- )
967
- . await ;
968
- let stake_pool =
969
- try_from_slice_unchecked :: < state:: StakePool > ( stake_pool. data . as_slice ( ) ) . unwrap ( ) ;
970
- let rent = context. banks_client . get_rent ( ) . await . unwrap ( ) ;
971
- let stake_rent = rent. minimum_balance ( std:: mem:: size_of :: < stake:: state:: StakeState > ( ) ) ;
972
- let fee_tokens = stake_pool
973
- . calc_pool_tokens_sol_deposit_fee ( stake_rent)
974
- . unwrap ( )
975
- + stake_pool
976
- . calc_pool_tokens_stake_deposit_fee ( stake_lamports - stake_rent)
977
- . unwrap ( ) ;
978
- let referral_fee = stake_pool_accounts. calculate_referral_fee ( fee_tokens) ;
979
- assert ! ( referral_fee > 0 ) ;
980
- assert_eq ! ( referrer_balance_pre + referral_fee, referrer_balance_post) ;
981
- }
982
-
983
- #[ tokio:: test]
984
- async fn fail_with_invalid_referrer ( ) {
985
- let (
986
- mut context,
987
- stake_pool_accounts,
988
- validator_stake_account,
989
- user,
990
- deposit_stake,
991
- pool_token_account,
992
- _stake_lamports,
993
- ) = setup ( spl_token:: id ( ) ) . await ;
994
-
995
- let invalid_token_account = Keypair :: new ( ) ;
996
-
997
- let mut transaction = Transaction :: new_with_payer (
998
- & instruction:: deposit_stake (
999
- & id ( ) ,
1000
- & stake_pool_accounts. stake_pool . pubkey ( ) ,
1001
- & stake_pool_accounts. validator_list . pubkey ( ) ,
1002
- & stake_pool_accounts. withdraw_authority ,
1003
- & deposit_stake,
1004
- & user. pubkey ( ) ,
1005
- & validator_stake_account. stake_account ,
1006
- & stake_pool_accounts. reserve_stake . pubkey ( ) ,
1007
- & pool_token_account,
1008
- & stake_pool_accounts. pool_fee_account . pubkey ( ) ,
1009
- & invalid_token_account. pubkey ( ) ,
1010
- & stake_pool_accounts. pool_mint . pubkey ( ) ,
1011
- & spl_token:: id ( ) ,
1012
- ) ,
1013
- Some ( & context. payer . pubkey ( ) ) ,
1014
- ) ;
1015
- transaction. sign ( & [ & context. payer , & user] , context. last_blockhash ) ;
1016
- let transaction_error = context
1017
- . banks_client
1018
- . process_transaction ( transaction)
1019
- . await
1020
- . err ( )
1021
- . unwrap ( )
1022
- . unwrap ( ) ;
1023
-
1024
- match transaction_error {
1025
- TransactionError :: InstructionError ( _, InstructionError :: InvalidAccountData ) => ( ) ,
1026
- _ => panic ! (
1027
- "Wrong error occurs while try to make a deposit with an invalid referrer account"
1028
- ) ,
1029
- }
1030
- }
0 commit comments