implement sparc return address functionality

This commit is contained in:
akildemir
2025-07-02 14:25:25 +03:00
parent 11a296acde
commit 520d4b4eab
16 changed files with 196 additions and 22 deletions

View File

@@ -115,6 +115,7 @@ TEST(carrot_core, main_address_normal_scan_completeness)
encrypted_payment_id_t encrypted_payment_id;
get_output_proposal_normal_v1(proposal,
tx_first_key_image,
nullptr, // s_view_balance_dev
enote_proposal,
encrypted_payment_id);
@@ -185,6 +186,7 @@ TEST(carrot_core, subaddress_normal_scan_completeness)
encrypted_payment_id_t encrypted_payment_id;
get_output_proposal_normal_v1(proposal,
tx_first_key_image,
nullptr, // s_view_balance_dev
enote_proposal,
encrypted_payment_id);
@@ -252,6 +254,7 @@ TEST(carrot_core, integrated_address_normal_scan_completeness)
encrypted_payment_id_t encrypted_payment_id;
get_output_proposal_normal_v1(proposal,
tx_first_key_image,
nullptr, // s_view_balance_dev
enote_proposal,
encrypted_payment_id);
@@ -711,6 +714,7 @@ static void subtest_2out_transfer_get_output_enote_proposals_completeness(const
std::vector<RCTOutputEnoteProposal> enote_proposals;
encrypted_payment_id_t encrypted_payment_id;
size_t change_index;
std::unordered_map<crypto::public_key, size_t> normal_payments_indices;
get_output_enote_proposals({bob_payment_proposal},
{alice_payment_proposal},
dummy_encrypted_pid,
@@ -719,7 +723,8 @@ static void subtest_2out_transfer_get_output_enote_proposals_completeness(const
tx_first_key_image,
enote_proposals,
encrypted_payment_id,
change_index);
change_index,
normal_payments_indices);
ASSERT_EQ(2, enote_proposals.size()); // 2-out tx

View File

@@ -375,6 +375,7 @@ TEST(carrot_fcmp, receive_scan_spend_and_verify_serialized_carrot_tx)
std::vector<RCTOutputEnoteProposal> output_enote_proposals;
encrypted_payment_id_t encrypted_payment_id;
size_t change_index;
std::unordered_map<crypto::public_key, size_t> normal_payments_indices;
get_output_enote_proposals(tx_proposal.normal_payment_proposals,
selfsend_payment_proposal_cores,
tx_proposal.dummy_encrypted_payment_id,
@@ -384,7 +385,8 @@ TEST(carrot_fcmp, receive_scan_spend_and_verify_serialized_carrot_tx)
tx_proposal.key_images_sorted.at(0),
output_enote_proposals,
encrypted_payment_id,
change_index);
change_index,
normal_payments_indices);
// Collect balance info and enotes
std::vector<crypto::public_key> input_onetime_addresses;
@@ -413,6 +415,8 @@ TEST(carrot_fcmp, receive_scan_spend_and_verify_serialized_carrot_tx)
tx_proposal.key_images_sorted,
tx_proposal.sources,
tx_proposal.fee,
0, // change_index
{}, // change_masks
encrypted_payment_id);
ASSERT_EQ(2, tx.version);

View File

@@ -205,6 +205,7 @@ static void subtest_multi_account_transfer_over_transaction(const unittest_trans
std::vector<RCTOutputEnoteProposal> rederived_output_enote_proposals;
encrypted_payment_id_t rederived_encrypted_payment_id;
size_t change_index;
std::unordered_map<crypto::public_key, size_t> normal_payments_indices;
get_output_enote_proposals(tx_proposal.normal_payment_proposals,
modified_selfsend_payment_proposals,
*parsed_encrypted_payment_id,
@@ -213,7 +214,8 @@ static void subtest_multi_account_transfer_over_transaction(const unittest_trans
parsed_key_images.at(0),
rederived_output_enote_proposals,
rederived_encrypted_payment_id,
change_index);
change_index,
normal_payments_indices);
EXPECT_EQ(*parsed_encrypted_payment_id, rederived_encrypted_payment_id);
ASSERT_EQ(parsed_enotes.size(), rederived_output_enote_proposals.size());
for (size_t enote_idx = 0; enote_idx < parsed_enotes.size(); ++enote_idx)

View File

@@ -188,6 +188,7 @@ static void subtest_legacy_2out_transfer_get_output_enote_proposals_completeness
std::vector<RCTOutputEnoteProposal> enote_proposals;
encrypted_payment_id_t encrypted_payment_id;
size_t change_index;
std::unordered_map<crypto::public_key, size_t> normal_payments_indices;
get_output_enote_proposals({bob_payment_proposal},
{alice_payment_proposal},
gen_encrypted_payment_id(),
@@ -196,7 +197,8 @@ static void subtest_legacy_2out_transfer_get_output_enote_proposals_completeness
tx_first_key_image,
enote_proposals,
encrypted_payment_id,
change_index);
change_index,
normal_payments_indices);
ASSERT_EQ(2, enote_proposals.size()); // 2-out tx

View File

@@ -86,6 +86,7 @@ std::tuple<std::vector<RCTOutputEnoteProposal>, crypto::public_key> make_origin_
.randomness = randomness
},
tx_first_key_image,
nullptr, // s_view_balance_dev
enote_proposal_out,
encrypted_payment_id_out
);