Skip to content

Commit 15a2c6e

Browse files
committed
Multisignature target to be single hash
1 parent f5431bc commit 15a2c6e

28 files changed

+124
-131
lines changed

apps/src/lib/node/ledger/shell/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1210,7 +1210,9 @@ where
12101210
// Replay protection check
12111211
let inner_tx_hash = tx.raw_header_hash();
12121212
let inner_hash_key =
1213-
replay_protection::get_replay_protection_key(inner_tx_hash);
1213+
replay_protection::get_replay_protection_key(
1214+
&inner_tx_hash,
1215+
);
12141216
if self
12151217
.wl_storage
12161218
.storage

benches/host_env.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use borsh::BorshSerialize;
21
use criterion::{criterion_group, criterion_main, Criterion};
32
use namada::core::types::account::AccountPublicKeysMap;
43
use namada::core::types::address;
54
use namada::core::types::token::{Amount, Transfer};
6-
use namada::proto::{Data, MultiSignature, Section};
5+
use namada::proto::MultiSignature;
76
use namada_apps::wallet::defaults;
7+
use namada_benches::{generate_tx, TX_TRANSFER_WASM};
88

99
/// Benchmarks the validation of a single signature on a single `Section` of a
1010
/// transaction
@@ -17,15 +17,14 @@ fn tx_section_signature_validation(c: &mut Criterion) {
1717
key: None,
1818
shielded: None,
1919
};
20-
let section = Section::Data(Data::new(transfer_data.try_to_vec().unwrap()));
21-
let section_hash = section.get_hash();
20+
let tx = generate_tx(TX_TRANSFER_WASM, transfer_data, None, None, None);
2221

2322
let pkim = AccountPublicKeysMap::from_iter([
2423
defaults::albert_keypair().to_public()
2524
]);
2625

2726
let multisig = MultiSignature::new(
28-
vec![section_hash],
27+
tx.header_hash(),
2928
&[defaults::albert_keypair()],
3029
&pkim,
3130
);

benches/lib.rs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use masp_primitives::zip32::ExtendedFullViewingKey;
2525
use masp_proofs::prover::LocalTxProver;
2626
use namada::core::ledger::governance::storage::proposal::ProposalType;
2727
use namada::core::ledger::ibc::storage::port_key;
28+
use namada::core::types::account::AccountPublicKeysMap;
2829
use namada::core::types::address::{self, Address};
2930
use namada::core::types::key::common::SecretKey;
3031
use namada::core::types::storage::Key;
@@ -187,7 +188,7 @@ impl Default for BenchShell {
187188
bond,
188189
None,
189190
None,
190-
Some(&defaults::albert_keypair()),
191+
Some(defaults::albert_keypair()),
191192
);
192193

193194
let params =
@@ -215,7 +216,7 @@ impl Default for BenchShell {
215216
},
216217
None,
217218
Some(vec![content_section]),
218-
Some(&defaults::albert_keypair()),
219+
Some(defaults::albert_keypair()),
219220
);
220221

221222
bench_shell.execute_tx(&signed_tx);
@@ -403,7 +404,7 @@ pub fn generate_tx(
403404
data: impl BorshSerialize,
404405
shielded: Option<Transaction>,
405406
extra_section: Option<Vec<Section>>,
406-
signer: Option<&SecretKey>,
407+
signer: Option<SecretKey>,
407408
) -> Tx {
408409
let mut tx = Tx::from_type(namada::types::transaction::TxType::Decrypted(
409410
namada::types::transaction::DecryptedTx::Decrypted {
@@ -433,10 +434,14 @@ pub fn generate_tx(
433434
}
434435

435436
if let Some(signer) = signer {
436-
tx.add_section(Section::Signature(Signature::new(
437-
tx.sechashes(),
438-
signer,
439-
)));
437+
let keys_map = AccountPublicKeysMap::from_iter([signer.to_public()]);
438+
tx.add_section(Section::SectionSignature(
439+
namada::proto::MultiSignature::new(
440+
tx.header_hash(),
441+
&[signer],
442+
&keys_map,
443+
),
444+
));
440445
}
441446

442447
tx
@@ -817,7 +822,7 @@ impl BenchShieldedCtx {
817822
},
818823
shielded,
819824
None,
820-
Some(&defaults::albert_keypair()),
825+
Some(defaults::albert_keypair()),
821826
)
822827
}
823828
}

benches/native_vps.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ fn governance(c: &mut Criterion) {
107107
},
108108
None,
109109
None,
110-
Some(&defaults::albert_keypair()),
110+
Some(defaults::albert_keypair()),
111111
),
112112
"validator_vote" => generate_tx(
113113
TX_VOTE_PROPOSAL_WASM,
@@ -119,7 +119,7 @@ fn governance(c: &mut Criterion) {
119119
},
120120
None,
121121
None,
122-
Some(&defaults::validator_keypair()),
122+
Some(defaults::validator_keypair()),
123123
),
124124
"minimal_proposal" => {
125125
let content_section = Section::ExtraData(Code::new(vec![]));
@@ -136,7 +136,7 @@ fn governance(c: &mut Criterion) {
136136
},
137137
None,
138138
Some(vec![content_section]),
139-
Some(&defaults::albert_keypair()),
139+
Some(defaults::albert_keypair()),
140140
)
141141
}
142142
"complete_proposal" => {
@@ -179,7 +179,7 @@ fn governance(c: &mut Criterion) {
179179
},
180180
None,
181181
Some(vec![content_section, wasm_code_section]),
182-
Some(&defaults::albert_keypair()),
182+
Some(defaults::albert_keypair()),
183183
)
184184
}
185185
_ => panic!("Unexpected bench test"),
@@ -408,7 +408,7 @@ fn vp_multitoken(c: &mut Criterion) {
408408
},
409409
None,
410410
None,
411-
Some(&defaults::albert_keypair()),
411+
Some(defaults::albert_keypair()),
412412
);
413413

414414
for (signed_tx, bench_name) in [foreign_key_write, transfer]

benches/process_wrapper.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fn process_tx(c: &mut Criterion) {
3030
},
3131
None,
3232
None,
33-
Some(&defaults::albert_keypair()),
33+
Some(defaults::albert_keypair()),
3434
);
3535

3636
tx.update_header(namada::types::transaction::TxType::Wrapper(Box::new(
@@ -41,7 +41,7 @@ fn process_tx(c: &mut Criterion) {
4141
},
4242
defaults::albert_keypair().ref_to(),
4343
0.into(),
44-
1000.into(),
44+
20_000.into(),
4545
#[cfg(not(feature = "mainnet"))]
4646
None,
4747
None,

benches/txs.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ fn bond(c: &mut Criterion) {
128128
},
129129
None,
130130
None,
131-
Some(&defaults::albert_keypair()),
131+
Some(defaults::albert_keypair()),
132132
);
133133

134134
let self_bond = generate_tx(
@@ -140,7 +140,7 @@ fn bond(c: &mut Criterion) {
140140
},
141141
None,
142142
None,
143-
Some(&defaults::validator_keypair()),
143+
Some(defaults::validator_keypair()),
144144
);
145145

146146
for (signed_tx, bench_name) in
@@ -170,7 +170,7 @@ fn unbond(c: &mut Criterion) {
170170
},
171171
None,
172172
None,
173-
Some(&defaults::albert_keypair()),
173+
Some(defaults::albert_keypair()),
174174
);
175175

176176
let self_unbond = generate_tx(
@@ -182,7 +182,7 @@ fn unbond(c: &mut Criterion) {
182182
},
183183
None,
184184
None,
185-
Some(&defaults::validator_keypair()),
185+
Some(defaults::validator_keypair()),
186186
);
187187

188188
for (signed_tx, bench_name) in
@@ -211,7 +211,7 @@ fn withdraw(c: &mut Criterion) {
211211
},
212212
None,
213213
None,
214-
Some(&defaults::albert_keypair()),
214+
Some(defaults::albert_keypair()),
215215
);
216216

217217
let self_withdraw = generate_tx(
@@ -222,7 +222,7 @@ fn withdraw(c: &mut Criterion) {
222222
},
223223
None,
224224
None,
225-
Some(&defaults::validator_keypair()),
225+
Some(defaults::validator_keypair()),
226226
);
227227

228228
for (signed_tx, bench_name) in [withdraw, self_withdraw]
@@ -245,7 +245,7 @@ fn withdraw(c: &mut Criterion) {
245245
},
246246
None,
247247
None,
248-
Some(&defaults::albert_keypair()),
248+
Some(defaults::albert_keypair()),
249249
),
250250
"self_withdraw" => generate_tx(
251251
TX_UNBOND_WASM,
@@ -256,7 +256,7 @@ fn withdraw(c: &mut Criterion) {
256256
},
257257
None,
258258
None,
259-
Some(&defaults::validator_keypair()),
259+
Some(defaults::validator_keypair()),
260260
),
261261
_ => panic!("Unexpected bench test"),
262262
};
@@ -332,7 +332,7 @@ fn update_vp(c: &mut Criterion) {
332332
data,
333333
None,
334334
Some(vec![extra_section]),
335-
Some(&defaults::albert_keypair()),
335+
Some(defaults::albert_keypair()),
336336
);
337337

338338
c.bench_function("update_vp", |b| {
@@ -372,7 +372,7 @@ fn init_account(c: &mut Criterion) {
372372
data,
373373
None,
374374
Some(vec![extra_section]),
375-
Some(&defaults::albert_keypair()),
375+
Some(defaults::albert_keypair()),
376376
);
377377

378378
c.bench_function("init_account", |b| {
@@ -410,7 +410,7 @@ fn init_proposal(c: &mut Criterion) {
410410
},
411411
None,
412412
Some(vec![content_section]),
413-
Some(&defaults::albert_keypair()),
413+
Some(defaults::albert_keypair()),
414414
)
415415
}
416416
"complete_proposal" => {
@@ -462,7 +462,7 @@ fn init_proposal(c: &mut Criterion) {
462462
},
463463
None,
464464
Some(vec![content_section, wasm_code_section]),
465-
Some(&defaults::albert_keypair()),
465+
Some(defaults::albert_keypair()),
466466
)
467467
}
468468
_ => panic!("unexpected bench test"),
@@ -491,7 +491,7 @@ fn vote_proposal(c: &mut Criterion) {
491491
},
492492
None,
493493
None,
494-
Some(&defaults::albert_keypair()),
494+
Some(defaults::albert_keypair()),
495495
);
496496

497497
let validator_vote = generate_tx(
@@ -504,7 +504,7 @@ fn vote_proposal(c: &mut Criterion) {
504504
},
505505
None,
506506
None,
507-
Some(&defaults::validator_keypair()),
507+
Some(defaults::validator_keypair()),
508508
);
509509

510510
for (signed_tx, bench_name) in [delegator_vote, validator_vote]
@@ -586,7 +586,7 @@ fn init_validator(c: &mut Criterion) {
586586
data,
587587
None,
588588
Some(vec![extra_section]),
589-
Some(&defaults::albert_keypair()),
589+
Some(defaults::albert_keypair()),
590590
);
591591

592592
c.bench_function("init_validator", |b| {
@@ -607,7 +607,7 @@ fn change_validator_commission(c: &mut Criterion) {
607607
},
608608
None,
609609
None,
610-
Some(&defaults::validator_keypair()),
610+
Some(defaults::validator_keypair()),
611611
);
612612

613613
c.bench_function("change_validator_commission", |b| {
@@ -642,7 +642,7 @@ fn unjail_validator(c: &mut Criterion) {
642642
defaults::validator_address(),
643643
None,
644644
None,
645-
Some(&defaults::validator_keypair()),
645+
Some(defaults::validator_keypair()),
646646
);
647647

648648
c.bench_function("unjail_validator", |b| {

0 commit comments

Comments
 (0)