Skip to content

Commit

Permalink
Combining Signature and MultiSignature sections to deduplicate hardwa…
Browse files Browse the repository at this point in the history
…re wallet code.
  • Loading branch information
murisi committed Sep 12, 2023
1 parent ad6734d commit c1aafa9
Show file tree
Hide file tree
Showing 33 changed files with 260 additions and 284 deletions.
14 changes: 9 additions & 5 deletions apps/src/lib/node/ledger/shell/finalize_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1099,7 +1099,7 @@ mod test_finalize_block {
validator_consensus_key_handle, validator_rewards_products_handle,
validator_slashes_handle, validator_state_handle, write_pos_params,
};
use namada::proto::{Code, Data, Section, Signature};
use namada::proto::{Code, Data, Signature, Section};
use namada::types::dec::POS_DECIMAL_PRECISION;
use namada::types::ethereum_events::{EthAddress, Uint as ethUint};
use namada::types::hash::Hash;
Expand Down Expand Up @@ -1156,7 +1156,8 @@ mod test_finalize_block {
));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
keypair,
[(0, keypair.clone())].into_iter().collect(),
None
)));
let tx = wrapper_tx.to_bytes();
(
Expand Down Expand Up @@ -2489,7 +2490,8 @@ mod test_finalize_block {
));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let wrapper_hash_key = replay_protection::get_replay_protection_key(
Expand Down Expand Up @@ -2562,7 +2564,8 @@ mod test_finalize_block {
));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair.clone())].into_iter().collect(),
None,
)));

let processed_tx = ProcessedTx {
Expand Down Expand Up @@ -2646,7 +2649,8 @@ mod test_finalize_block {
));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));
let fee_amount =
wrapper.header().wrapper().unwrap().get_tx_fee().unwrap();
Expand Down
31 changes: 20 additions & 11 deletions apps/src/lib/node/ledger/shell/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2159,7 +2159,7 @@ mod test_utils {
#[cfg(all(test, not(feature = "abcipp")))]
mod abciplus_mempool_tests {
use namada::proto::{
Data, Section, SignableEthMessage, Signature, Signed, Tx,
Data, Signature, Section, SignableEthMessage, Signed, Tx,
};
use namada::types::ethereum_events::EthereumEvent;
use namada::types::key::RefTo;
Expand Down Expand Up @@ -2299,7 +2299,8 @@ mod abciplus_mempool_tests {
tx.set_data(Data::new(ext.try_to_vec().expect("Test falied")));
tx.add_section(Section::Signature(Signature::new(
tx.sechashes(),
&protocol_key,
[(0, protocol_key)].into_iter().collect(),
None,
)));
tx
}
Expand All @@ -2312,7 +2313,7 @@ mod abciplus_mempool_tests {
#[cfg(test)]
mod test_mempool_validate {
use namada::proof_of_stake::Epoch;
use namada::proto::{Code, Data, Section, Signature, Tx};
use namada::proto::{Code, Data, Signature, Section, Tx};
use namada::types::transaction::{Fee, WrapperTx};

use super::*;
Expand Down Expand Up @@ -2384,7 +2385,8 @@ mod test_mempool_validate {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
invalid_wrapper.add_section(Section::Signature(Signature::new(
invalid_wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

// we mount a malleability attack to try and remove the fee
Expand Down Expand Up @@ -2452,7 +2454,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

// Write wrapper hash to storage
Expand Down Expand Up @@ -2611,7 +2614,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let result = shell.mempool_validate(
Expand Down Expand Up @@ -2645,7 +2649,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let result = shell.mempool_validate(
Expand Down Expand Up @@ -2679,7 +2684,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let result = shell.mempool_validate(
Expand Down Expand Up @@ -2713,7 +2719,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let result = shell.mempool_validate(
Expand Down Expand Up @@ -2746,7 +2753,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let result = shell.mempool_validate(
Expand Down Expand Up @@ -2779,7 +2787,8 @@ mod test_mempool_validate {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let result = shell.mempool_validate(
Expand Down
41 changes: 27 additions & 14 deletions apps/src/lib/node/ledger/shell/prepare_proposal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ mod test_prepare_proposal {
};
#[cfg(feature = "abcipp")]
use namada::proto::SignableEthMessage;
use namada::proto::{Code, Data, Header, Section, Signature, Signed};
use namada::proto::{Code, Data, Header, Signature, Section, Signed};
use namada::types::address::{self, Address};
use namada::types::ethereum_events::EthereumEvent;
#[cfg(feature = "abcipp")]
Expand Down Expand Up @@ -1135,7 +1135,8 @@ mod test_prepare_proposal {
));
tx.add_section(Section::Signature(Signature::new(
tx.sechashes(),
&keypair,
[(0, keypair.clone())].into_iter().collect(),
None,
)));

let gas = Gas::from(
Expand Down Expand Up @@ -1208,7 +1209,8 @@ mod test_prepare_proposal {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

// Write wrapper hash to storage
Expand Down Expand Up @@ -1262,7 +1264,8 @@ mod test_prepare_proposal {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1304,7 +1307,8 @@ mod test_prepare_proposal {
wrapper.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));
let inner_unsigned_hash =
wrapper.clone().update_header(TxType::Raw).header_hash();
Expand Down Expand Up @@ -1362,7 +1366,8 @@ mod test_prepare_proposal {
let mut new_wrapper = wrapper.clone();
wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

new_wrapper.update_header(TxType::Wrapper(Box::new(WrapperTx::new(
Expand All @@ -1379,7 +1384,8 @@ mod test_prepare_proposal {
))));
new_wrapper.add_section(Section::Signature(Signature::new(
wrapper.sechashes(),
&keypair_2,
[(0, keypair_2)].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1421,7 +1427,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let time = DateTimeUtc::now();
Expand Down Expand Up @@ -1471,7 +1478,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1512,7 +1520,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&keypair,
[(0, keypair)].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1552,7 +1561,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1591,7 +1601,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1629,7 +1640,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down Expand Up @@ -1667,7 +1679,8 @@ mod test_prepare_proposal {
.set_data(Data::new("transaction data".as_bytes().to_owned()));
wrapper_tx.add_section(Section::Signature(Signature::new(
wrapper_tx.sechashes(),
&crate::wallet::defaults::albert_keypair(),
[(0, crate::wallet::defaults::albert_keypair())].into_iter().collect(),
None,
)));

let req = RequestPrepareProposal {
Expand Down
Loading

0 comments on commit c1aafa9

Please sign in to comment.