@@ -893,10 +893,11 @@ TEST(carrot_core, main_address_coinbase_scan_completeness)
893
893
enote.onetime_address ));
894
894
}
895
895
// ----------------------------------------------------------------------------------------------------------------------
896
- static void subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (const bool alice_subaddress,
896
+ static void subtest_2out_transfer_get_output_enote_proposals_completeness (const bool alice_subaddress,
897
897
const bool bob_subaddress,
898
898
const bool bob_integrated,
899
- const CarrotEnoteType alice_selfsend_type)
899
+ const CarrotEnoteType alice_selfsend_type,
900
+ const bool alice_internal_selfsends)
900
901
{
901
902
// generate alice keys and address
902
903
const mock_carrot_keys alice = mock_carrot_keys::generate ();
@@ -972,11 +973,13 @@ static void subtest_2out_transfer_get_enote_output_proposals_internal_ss_complet
972
973
encrypted_payment_id_t encrypted_payment_id;
973
974
get_output_enote_proposals ({bob_payment_proposal},
974
975
{alice_payment_proposal},
975
- alice.s_view_balance_dev ,
976
+ alice_internal_selfsends ? &alice.s_view_balance_dev : nullptr ,
977
+ &alice.k_view_dev ,
978
+ alice.account_spend_pubkey ,
976
979
tx_first_key_image,
977
980
enote_proposals,
978
981
encrypted_payment_id);
979
-
982
+
980
983
ASSERT_EQ (2 , enote_proposals.size ()); // 2-out tx
981
984
982
985
// collect enotes
@@ -1061,37 +1064,73 @@ static void subtest_2out_transfer_get_enote_output_proposals_internal_ss_complet
1061
1064
// ----------------------------------------------------------------------------------------------------------------------
1062
1065
TEST (carrot_core, get_enote_output_proposals_internal_ss_main2main_completeness)
1063
1066
{
1064
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (false , false , false , CarrotEnoteType::PAYMENT);
1065
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (false , false , false , CarrotEnoteType::CHANGE);
1067
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , false , CarrotEnoteType::PAYMENT, true );
1068
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , false , CarrotEnoteType::CHANGE, true );
1066
1069
}
1067
1070
// ----------------------------------------------------------------------------------------------------------------------
1068
1071
TEST (carrot_core, get_enote_output_proposals_internal_ss_main2sub_completeness)
1069
1072
{
1070
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (false , true , false , CarrotEnoteType::PAYMENT);
1071
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (false , true , false , CarrotEnoteType::CHANGE);
1073
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , true , false , CarrotEnoteType::PAYMENT, true );
1074
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , true , false , CarrotEnoteType::CHANGE, true );
1072
1075
}
1073
1076
// ----------------------------------------------------------------------------------------------------------------------
1074
1077
TEST (carrot_core, get_enote_output_proposals_internal_ss_main2integ_completeness)
1075
1078
{
1076
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (false , false , true , CarrotEnoteType::PAYMENT);
1077
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (false , false , true , CarrotEnoteType::CHANGE);
1079
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , true , CarrotEnoteType::PAYMENT, true );
1080
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , true , CarrotEnoteType::CHANGE, true );
1078
1081
}
1079
1082
// ----------------------------------------------------------------------------------------------------------------------
1080
1083
TEST (carrot_core, get_enote_output_proposals_internal_ss_sub2main_completeness)
1081
1084
{
1082
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (true , false , false , CarrotEnoteType::PAYMENT);
1083
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (true , false , false , CarrotEnoteType::CHANGE);
1085
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , false , CarrotEnoteType::PAYMENT, true );
1086
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , false , CarrotEnoteType::CHANGE, true );
1084
1087
}
1085
1088
// ----------------------------------------------------------------------------------------------------------------------
1086
1089
TEST (carrot_core, get_enote_output_proposals_internal_ss_sub2sub_completeness)
1087
1090
{
1088
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (true , true , false , CarrotEnoteType::PAYMENT);
1089
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (true , true , false , CarrotEnoteType::CHANGE);
1091
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , true , false , CarrotEnoteType::PAYMENT, true );
1092
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , true , false , CarrotEnoteType::CHANGE, true );
1090
1093
}
1091
1094
// ----------------------------------------------------------------------------------------------------------------------
1092
1095
TEST (carrot_core, get_enote_output_proposals_internal_ss_sub2integ_completeness)
1093
1096
{
1094
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (true , false , true , CarrotEnoteType::PAYMENT);
1095
- subtest_2out_transfer_get_enote_output_proposals_internal_ss_completeness (true , false , true , CarrotEnoteType::CHANGE);
1097
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , true , CarrotEnoteType::PAYMENT, true );
1098
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , true , CarrotEnoteType::CHANGE, true );
1099
+ }
1100
+ // ----------------------------------------------------------------------------------------------------------------------
1101
+ TEST (carrot_core, get_enote_output_proposals_external_ss_main2main_completeness)
1102
+ {
1103
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , false , CarrotEnoteType::PAYMENT, false );
1104
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , false , CarrotEnoteType::CHANGE, false );
1105
+ }
1106
+ // ----------------------------------------------------------------------------------------------------------------------
1107
+ TEST (carrot_core, get_enote_output_proposals_external_ss_main2sub_completeness)
1108
+ {
1109
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , true , false , CarrotEnoteType::PAYMENT, false );
1110
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , true , false , CarrotEnoteType::CHANGE, false );
1111
+ }
1112
+ // ----------------------------------------------------------------------------------------------------------------------
1113
+ TEST (carrot_core, get_enote_output_proposals_external_ss_main2integ_completeness)
1114
+ {
1115
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , true , CarrotEnoteType::PAYMENT, false );
1116
+ subtest_2out_transfer_get_output_enote_proposals_completeness (false , false , true , CarrotEnoteType::CHANGE, false );
1117
+ }
1118
+ // ----------------------------------------------------------------------------------------------------------------------
1119
+ TEST (carrot_core, get_enote_output_proposals_external_ss_sub2main_completeness)
1120
+ {
1121
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , false , CarrotEnoteType::PAYMENT, false );
1122
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , false , CarrotEnoteType::CHANGE, false );
1123
+ }
1124
+ // ----------------------------------------------------------------------------------------------------------------------
1125
+ TEST (carrot_core, get_enote_output_proposals_external_ss_sub2sub_completeness)
1126
+ {
1127
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , true , false , CarrotEnoteType::PAYMENT, false );
1128
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , true , false , CarrotEnoteType::CHANGE, false );
1129
+ }
1130
+ // ----------------------------------------------------------------------------------------------------------------------
1131
+ TEST (carrot_core, get_enote_output_proposals_external_ss_sub2integ_completeness)
1132
+ {
1133
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , true , CarrotEnoteType::PAYMENT, false );
1134
+ subtest_2out_transfer_get_output_enote_proposals_completeness (true , false , true , CarrotEnoteType::CHANGE, false );
1096
1135
}
1097
1136
// ----------------------------------------------------------------------------------------------------------------------
0 commit comments