Skip to content

Commit 76d6bb8

Browse files
committed
Merge branch 'murisi/test-vectors-with-randomness2' (#3296)
* origin/murisi/test-vectors-with-randomness2: Added a changelog entry. Start including MASP randomness in the test vectors.
2 parents be889bb + 1a0f24d commit 76d6bb8

File tree

9 files changed

+36
-22
lines changed

9 files changed

+36
-22
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Include the used MASP randomness parameters in the test vectors.
2+
([\#3296](https://github.com/anoma/namada/pull/3296))

Cargo.lock

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ libc = "0.2.97"
125125
libloading = "0.7.2"
126126
linkme = "0.3.24"
127127
# branch = "main"
128-
masp_primitives = { git = "https://github.com/anoma/masp", rev = "3aacc707c5948e7423589ac617305448bead9842" }
129-
masp_proofs = { git = "https://github.com/anoma/masp", rev = "3aacc707c5948e7423589ac617305448bead9842", default-features = false, features = ["local-prover"] }
128+
masp_primitives = { git = "https://github.com/anoma/masp", rev = "4ede1c42d76d6348af8224bc8bfac4404321fe82" }
129+
masp_proofs = { git = "https://github.com/anoma/masp", rev = "4ede1c42d76d6348af8224bc8bfac4404321fe82", default-features = false, features = ["local-prover"] }
130130
num256 = "0.3.5"
131131
num_cpus = "1.13.0"
132132
num-derive = "0.4"

crates/sdk/src/lib.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -801,6 +801,7 @@ pub mod testing {
801801
use borsh_ext::BorshSerializeExt;
802802
use governance::ProposalType;
803803
use ibc::primitives::proto::Any;
804+
use masp_primitives::transaction::components::sapling::builder::StoredBuildParams;
804805
use masp_primitives::transaction::TransparentAddress;
805806
use namada_account::{InitAccount, UpdateAccount};
806807
use namada_core::address::testing::{
@@ -870,6 +871,7 @@ pub mod testing {
870871
VoteProposal(VoteProposalData),
871872
Withdraw(Withdraw),
872873
Transfer(Transfer),
874+
MaspTransfer(Transfer, (StoredBuildParams, String)),
873875
Bond(Bond),
874876
Redelegation(Redelegation),
875877
UpdateStewardCommission(UpdateStewardCommission),
@@ -1067,7 +1069,7 @@ pub mod testing {
10671069
mut header in arb_header(),
10681070
wrapper in arb_wrapper_tx(),
10691071
code_hash in arb_hash(),
1070-
(masp_tx_type, (shielded_transfer, asset_types)) in prop_oneof![
1072+
(masp_tx_type, (shielded_transfer, asset_types, build_params)) in prop_oneof![
10711073
(Just(MaspTxType::Shielded), arb_shielded_transfer(0..MAX_ASSETS)),
10721074
(Just(MaspTxType::Shielding), arb_shielding_transfer(encode_address(&transfer.source), 1)),
10731075
(Just(MaspTxType::Deshielding), arb_deshielding_transfer(encode_address(&transfer.target), 1)),
@@ -1116,7 +1118,9 @@ pub mod testing {
11161118
// Link the Builder to the Transaction by hash code
11171119
target: masp_tx_hash,
11181120
});
1119-
(tx, TxData::Transfer(transfer))
1121+
let build_param_bytes =
1122+
data_encoding::HEXLOWER.encode(&build_params.serialize_to_vec());
1123+
(tx, TxData::MaspTransfer(transfer, (build_params, build_param_bytes)))
11201124
}
11211125
}
11221126

crates/sdk/src/masp.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2167,6 +2167,7 @@ pub mod testing {
21672167
use masp_primitives::sapling::prover::TxProver;
21682168
use masp_primitives::sapling::redjubjub::Signature;
21692169
use masp_primitives::sapling::{ProofGenerationKey, Rseed};
2170+
use masp_primitives::transaction::components::sapling::builder::StoredBuildParams;
21702171
use masp_primitives::transaction::components::GROTH_PROOF_SIZE;
21712172
use masp_proofs::bellman::groth16::Proof;
21722173
use proptest::prelude::*;
@@ -2938,19 +2939,20 @@ pub mod testing {
29382939
prover_rng in arb_rng().prop_map(TestCsprng),
29392940
mut rng in arb_rng().prop_map(TestCsprng),
29402941
bparams_rng in arb_rng().prop_map(TestCsprng),
2941-
) -> (ShieldedTransfer, HashMap<AssetData, u64>) {
2942+
) -> (ShieldedTransfer, HashMap<AssetData, u64>, StoredBuildParams) {
2943+
let mut rng_build_params = RngBuildParams::new(bparams_rng);
29422944
let (masp_tx, metadata) = builder.clone().build(
29432945
&MockTxProver(Mutex::new(prover_rng)),
29442946
&FeeRule::non_standard(U64Sum::zero()),
29452947
&mut rng,
2946-
&mut RngBuildParams::new(bparams_rng),
2948+
&mut rng_build_params,
29472949
).unwrap();
29482950
(ShieldedTransfer {
29492951
builder: builder.map_builder(WalletMap),
29502952
metadata,
29512953
masp_tx,
29522954
epoch,
2953-
}, asset_types)
2955+
}, asset_types, rng_build_params.to_stored().unwrap())
29542956
}
29552957
}
29562958

@@ -2968,19 +2970,20 @@ pub mod testing {
29682970
prover_rng in arb_rng().prop_map(TestCsprng),
29692971
mut rng in arb_rng().prop_map(TestCsprng),
29702972
bparams_rng in arb_rng().prop_map(TestCsprng),
2971-
) -> (ShieldedTransfer, HashMap<AssetData, u64>) {
2973+
) -> (ShieldedTransfer, HashMap<AssetData, u64>, StoredBuildParams) {
2974+
let mut rng_build_params = RngBuildParams::new(bparams_rng);
29722975
let (masp_tx, metadata) = builder.clone().build(
29732976
&MockTxProver(Mutex::new(prover_rng)),
29742977
&FeeRule::non_standard(U64Sum::zero()),
29752978
&mut rng,
2976-
&mut RngBuildParams::new(bparams_rng),
2979+
&mut rng_build_params,
29772980
).unwrap();
29782981
(ShieldedTransfer {
29792982
builder: builder.map_builder(WalletMap),
29802983
metadata,
29812984
masp_tx,
29822985
epoch,
2983-
}, asset_types)
2986+
}, asset_types, rng_build_params.to_stored().unwrap())
29842987
}
29852988
}
29862989

@@ -2998,19 +3001,20 @@ pub mod testing {
29983001
prover_rng in arb_rng().prop_map(TestCsprng),
29993002
mut rng in arb_rng().prop_map(TestCsprng),
30003003
bparams_rng in arb_rng().prop_map(TestCsprng),
3001-
) -> (ShieldedTransfer, HashMap<AssetData, u64>) {
3004+
) -> (ShieldedTransfer, HashMap<AssetData, u64>, StoredBuildParams) {
3005+
let mut rng_build_params = RngBuildParams::new(bparams_rng);
30023006
let (masp_tx, metadata) = builder.clone().build(
30033007
&MockTxProver(Mutex::new(prover_rng)),
30043008
&FeeRule::non_standard(U64Sum::zero()),
30053009
&mut rng,
3006-
&mut RngBuildParams::new(bparams_rng),
3010+
&mut rng_build_params,
30073011
).unwrap();
30083012
(ShieldedTransfer {
30093013
builder: builder.map_builder(WalletMap),
30103014
metadata,
30113015
masp_tx,
30123016
epoch,
3013-
}, asset_types)
3017+
}, asset_types, rng_build_params.to_stored().unwrap())
30143018
}
30153019
}
30163020
}

examples/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ path = "make-db-migration.rs"
2828
namada-eth-bridge = ["namada_sdk/namada-eth-bridge"]
2929

3030
[dev-dependencies]
31+
masp_primitives = { workspace = true, features = ["transparent-inputs"] }
3132
masp_proofs = { workspace = true, default-features = false, features = ["local-prover", "download-params"] }
3233
namada_apps_lib = {path = "../crates/apps_lib", features = ["migrations"]}
3334
namada_macros = {path = "../crates/macros"}

examples/tx_schema.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::collections::BTreeMap;
22
use std::error::Error;
33

4+
use masp_primitives::transaction::components::sapling::builder::StoredBuildParams;
45
use namada_sdk::borsh::BorshSchema;
56
use namada_sdk::tx::Tx;
67

@@ -12,6 +13,7 @@ fn main() -> Result<(), Box<dyn Error>> {
1213
}
1314
let mut definitions = BTreeMap::new();
1415
Tx::add_definitions_recursively(&mut definitions);
16+
StoredBuildParams::add_definitions_recursively(&mut definitions);
1517
std::fs::write(&args[1], format!("{:#?}", definitions))
1618
.expect("unable to save schema");
1719
Ok(())

wasm/Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wasm_for_tests/Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)