From 5fd33e7e43f8ef78c82d82655936ca24528903c1 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 07:22:12 -0500 Subject: [PATCH 01/10] Add debuggin for create transaction --- librustzcash-wrapper/src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index c4f3316..f9a144d 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1656,6 +1656,7 @@ pub extern "C" fn rust_wrapper_create_transaction( None } }; + println!(sap_anchor); let orch_wit_in: Vec = marshall_from_haskell_var(orch_wit, orch_wit_len, RW); let orch_wit_reader = Cursor::new(orch_wit_in); let orch_iw: Option> = read_incremental_witness(orch_wit_reader).ok(); @@ -1667,16 +1668,19 @@ pub extern "C" fn rust_wrapper_create_transaction( None } }; + println!(orch_anchor); let build_config = BuildConfig::Standard {sapling_anchor: sap_anchor, orchard_anchor: orch_anchor}; let mut main_builder = Builder::new(MainNetwork, BlockHeight::from(bl_height), build_config); let mut test_builder = Builder::new(TestNetwork, BlockHeight::from(bl_height), build_config); let trans_input: Vec = marshall_from_haskell_var(t_input, t_input_len, RW); + println!(trans_input); for t_in in trans_input { if t_in.sk.len() > 1 { let k = SecretKey::from_slice(&t_in.sk).unwrap(); if net { match main_builder.add_transparent_input(k, t_in.utxo.unpack(), t_in.coin.unpack()) { Ok(()) => { + println!("added t-input in main"); continue; }, Err(_e) => { println!("Error reading transparent input"); } @@ -1684,6 +1688,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } else { match test_builder.add_transparent_input(k, t_in.utxo.unpack(), t_in.coin.unpack()) { Ok(()) => { + println!("added t-input in test"); continue; }, Err(_e) => { println!("Error reading transparent input"); } @@ -1692,6 +1697,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let sap_input: Vec = marshall_from_haskell_var(s_input, s_input_len, RW); + println!(sap_input); for s_in in sap_input { if s_in.sk.len() > 1 { let sp_key = ExtendedSpendingKey::from_bytes(&s_in.sk); @@ -1720,6 +1726,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let orch_input: Vec = marshall_from_haskell_var(o_input, o_input_len, RW); + println!(orch_input); for o_in in orch_input { if o_in.sk.len() > 1 { let sp_key = SpendingKey::from_bytes(o_in.sk[0..32].try_into().unwrap()).unwrap(); @@ -1739,6 +1746,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let outputs: Vec = marshall_from_haskell_var(out_list, out_list_len, RW); + println!(outputs); for output in outputs { match output.kind { 1 => { @@ -1782,8 +1790,10 @@ pub extern "C" fn rust_wrapper_create_transaction( let memo = MemoBytes::from_bytes(&output.memo).unwrap(); if net { let _mb = main_builder.add_orchard_output::(ovk, recipient, val, memo); + println!("added o-input to main"); } else { let _tb = test_builder.add_orchard_output::(ovk, recipient, val, memo); + println!("added o-input to test"); } }, _ => { @@ -1797,9 +1807,12 @@ pub extern "C" fn rust_wrapper_create_transaction( let output_params_in: Vec = marshall_from_haskell_var(sapoutput, sapoutput_len, RW); let output_params_reader = Cursor::new(output_params_in); let output_prover = OutputParameters::read(output_params_reader, true).unwrap(); + println!("loaded params"); let result = if net { + println!("started main build"); main_builder.build(OsRng, &spend_prover, &output_prover, &FeeRule::standard()) } else { + println!("started test build"); test_builder.build(OsRng, &spend_prover, &output_prover, &FeeRule::standard()) }; match result { -- 2.34.1 From c144a6d62423edae7cc807c4d54cc0555cdbc2eb Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 07:31:01 -0500 Subject: [PATCH 02/10] Add more debugging to Rust --- librustzcash-wrapper/src/lib.rs | 60 ++++++++++++++++----------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index f9a144d..821019f 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -170,7 +170,7 @@ use bech32::{ pub enum RW {} pub const RW: PhantomData = PhantomData; -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct RawData { hrp: Vec, bytes: Vec @@ -190,7 +190,7 @@ impl ToHaskell for RawData { //} //} -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HrawTx { bytes: Vec, s: bool, @@ -204,7 +204,7 @@ impl ToHaskell for HrawTx { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HshieldedOutput { pub cv: Hhex, cmu: Hhex, @@ -248,7 +248,7 @@ impl HshieldedOutput { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hhex { bytes: Vec } @@ -261,7 +261,7 @@ impl ToHaskell for Hhex { } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Haction { nf: Hhex, rk: Hhex, @@ -290,7 +290,7 @@ impl Haction { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hnote { note: u64, recipient: Vec, @@ -307,7 +307,7 @@ impl ToHaskell for Hnote { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hrseed { kind: u8, bytes: Vec @@ -328,7 +328,7 @@ impl ToHaskell for Hrseed { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hua { net: u8, o_rec: Vec, @@ -361,7 +361,7 @@ impl Hua { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Htx { txid: Vec, locktime: u32, @@ -379,7 +379,7 @@ impl ToHaskell for Htx { } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HTBundle { empty: bool, vin: Vec, @@ -400,7 +400,7 @@ impl HTBundle { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HTxIn { outpoint: Houtpoint, script: Vec, @@ -420,7 +420,7 @@ impl HTxIn { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HTxOut { amt: i64, script: Vec @@ -449,7 +449,7 @@ impl HTxOut { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Houtpoint { hash: Vec, index: u32 @@ -479,7 +479,7 @@ impl Houtpoint { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HtransparentInput { sk: Vec, utxo: Houtpoint, @@ -500,7 +500,7 @@ impl ToHaskell for HtransparentInput { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HSBundle { empty: bool, spends: Vec, @@ -523,7 +523,7 @@ impl HSBundle { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hspend { cv: Hhex, anchor: Hhex, @@ -552,7 +552,7 @@ impl Hspend { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HsaplingInput { sk: Vec, note: Hnote, @@ -567,7 +567,7 @@ impl FromHaskell for HsaplingInput { } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HorchardInput { sk: Vec, note: Hnote, @@ -581,7 +581,7 @@ impl FromHaskell for HorchardInput { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Houtput { kind: u8, ovk: Vec, @@ -598,7 +598,7 @@ impl FromHaskell for Houtput { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct HOBundle { empty: bool, actions: Vec, @@ -623,7 +623,7 @@ impl HOBundle { } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hflags { spends: bool, outputs: bool @@ -642,7 +642,7 @@ impl Hflags { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hufvk { net: u8, orchard: Vec, @@ -671,7 +671,7 @@ impl Hufvk { } } -#[derive(BorshSerialize, BorshDeserialize)] +#[derive(Debug, BorshSerialize, BorshDeserialize)] pub struct Hsvk { vk: Vec, ovk: Vec @@ -795,7 +795,7 @@ pub extern "C" fn rust_wrapper_svk_decode( true } Err(e) => { - print!("{}", e); + print!("{:?}", e); false } } @@ -1656,7 +1656,7 @@ pub extern "C" fn rust_wrapper_create_transaction( None } }; - println!(sap_anchor); + println!("{:?}", sap_anchor); let orch_wit_in: Vec = marshall_from_haskell_var(orch_wit, orch_wit_len, RW); let orch_wit_reader = Cursor::new(orch_wit_in); let orch_iw: Option> = read_incremental_witness(orch_wit_reader).ok(); @@ -1668,12 +1668,12 @@ pub extern "C" fn rust_wrapper_create_transaction( None } }; - println!(orch_anchor); + println!("{:?}", orch_anchor); let build_config = BuildConfig::Standard {sapling_anchor: sap_anchor, orchard_anchor: orch_anchor}; let mut main_builder = Builder::new(MainNetwork, BlockHeight::from(bl_height), build_config); let mut test_builder = Builder::new(TestNetwork, BlockHeight::from(bl_height), build_config); let trans_input: Vec = marshall_from_haskell_var(t_input, t_input_len, RW); - println!(trans_input); + println!("{:?}", trans_input); for t_in in trans_input { if t_in.sk.len() > 1 { let k = SecretKey::from_slice(&t_in.sk).unwrap(); @@ -1697,7 +1697,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let sap_input: Vec = marshall_from_haskell_var(s_input, s_input_len, RW); - println!(sap_input); + println!("{:?}", sap_input); for s_in in sap_input { if s_in.sk.len() > 1 { let sp_key = ExtendedSpendingKey::from_bytes(&s_in.sk); @@ -1726,7 +1726,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let orch_input: Vec = marshall_from_haskell_var(o_input, o_input_len, RW); - println!(orch_input); + println!("{:?}", orch_input); for o_in in orch_input { if o_in.sk.len() > 1 { let sp_key = SpendingKey::from_bytes(o_in.sk[0..32].try_into().unwrap()).unwrap(); @@ -1746,7 +1746,7 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let outputs: Vec = marshall_from_haskell_var(out_list, out_list_len, RW); - println!(outputs); + println!("{:?}", outputs); for output in outputs { match output.kind { 1 => { -- 2.34.1 From 652e95c3618c1336edc1427f238e33a720fb0510 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 12:10:53 -0500 Subject: [PATCH 03/10] Improve error messaging --- librustzcash-wrapper/src/lib.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 821019f..2291f48 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1824,11 +1824,13 @@ pub extern "C" fn rust_wrapper_create_transaction( }, Err(e) => { match e { - Error::InsufficientFunds(_y) => { + Error::InsufficientFunds(y) => { + println!("{:?}", y); let x = Hhex {bytes: vec![0]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::ChangeRequired(_y1) => { + Error::ChangeRequired(y1) => { + println!("{:?}", y1); let x = Hhex {bytes: vec![1]}; marshall_to_haskell_var(&x, out, out_len, RW); }, @@ -1836,27 +1838,27 @@ pub extern "C" fn rust_wrapper_create_transaction( let x = Hhex {bytes: vec![2]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::Balance(x) => { + Error::Balance(y3) => { let x = Hhex {bytes: vec![3]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::TransparentBuild(x) => { + Error::TransparentBuild(y4) => { let x = Hhex {bytes: vec![4]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::SaplingBuild(x) => { + Error::SaplingBuild(y5) => { let x = Hhex {bytes: vec![5]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::OrchardBuild(x) => { + Error::OrchardBuild(y7) => { let x = Hhex {bytes: vec![6]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::OrchardSpend(x) => { + Error::OrchardSpend(y8) => { let x = Hhex {bytes: vec![7]}; marshall_to_haskell_var(&x, out, out_len, RW); }, - Error::OrchardRecipient(x) => { + Error::OrchardRecipient(y9) => { let x = Hhex {bytes: vec![8]}; marshall_to_haskell_var(&x, out, out_len, RW); }, -- 2.34.1 From 2d14ef6b22664bc85d5193cdc3d5837e37bd6b2b Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 12:35:36 -0500 Subject: [PATCH 04/10] Update to use commitment trees for anchors --- librustzcash-wrapper/src/lib.rs | 12 ++++++------ src/ZcashHaskell/Utils.hs | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 2291f48..6e2a5f5 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1647,24 +1647,24 @@ pub extern "C" fn rust_wrapper_create_transaction( out_len: &mut usize){ let sap_wit_in: Vec = marshall_from_haskell_var(sap_wit, sap_wit_len, RW); let sap_wit_reader = Cursor::new(sap_wit_in); - let sap_iw: Option> = read_incremental_witness(sap_wit_reader).ok(); + let sap_iw = read_commitment_tree::>, SAPLING_DEPTH>(sap_wit_reader); let sap_anchor = match sap_iw { - Some(s_iw) => { + Ok(s_iw) => { Some(SaplingAnchor::from(s_iw.root())) }, - None => { + Err(_e) => { None } }; println!("{:?}", sap_anchor); let orch_wit_in: Vec = marshall_from_haskell_var(orch_wit, orch_wit_len, RW); let orch_wit_reader = Cursor::new(orch_wit_in); - let orch_iw: Option> = read_incremental_witness(orch_wit_reader).ok(); + let orch_iw = read_commitment_tree::>, 32>(orch_wit_reader); let orch_anchor = match orch_iw { - Some(o_iw) => { + Ok(o_iw) => { Some(OrchardAnchor::from(o_iw.root())) }, - None => { + Err(_e) => { None } }; diff --git a/src/ZcashHaskell/Utils.hs b/src/ZcashHaskell/Utils.hs index 9c87f39..db001c8 100644 --- a/src/ZcashHaskell/Utils.hs +++ b/src/ZcashHaskell/Utils.hs @@ -123,8 +123,8 @@ readZebraTransaction hex = rawTx = (withPureBorshVarBuffer . rustWrapperTxRead) $ hexBytes hex createTransaction :: - Maybe SaplingWitness -- ^ to obtain the Sapling anchor - -> Maybe OrchardWitness -- ^ to obtain the Orchard anchor + Maybe SaplingCommitmentTree -- ^ to obtain the Sapling anchor + -> Maybe OrchardCommitmentTree -- ^ to obtain the Orchard anchor -> [TransparentTxSpend] -- ^ the list of transparent notes to spend -> [SaplingTxSpend] -- ^ the list of Sapling notes to spend -> [OrchardTxSpend] -- ^ the list of Orchard notes to spend @@ -156,10 +156,10 @@ createTransaction sapAnchor orchAnchor tSpend sSpend oSpend outgoing sParams oPa rustWrapperCreateTx (case sapAnchor of Nothing -> "0" - Just sA -> toBytes $ sapWit sA) + Just sA -> toBytes $ sapTree sA) (case orchAnchor of Nothing -> "0" - Just oA -> toBytes $ orchWit oA) + Just oA -> toBytes $ orchTree oA) tSpend sSpend oSpend -- 2.34.1 From c7f2bca2c47fbc4e0c6ff8eedac66a574e861de9 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 12:48:30 -0500 Subject: [PATCH 05/10] Remove ovk from transaction creation --- librustzcash-wrapper/src/lib.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 6e2a5f5..04c1139 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1779,12 +1779,13 @@ pub extern "C" fn rust_wrapper_create_transaction( } }, 4 => { - let sk = SpendingKey::from_bytes(output.ovk[0..32].try_into().unwrap()).unwrap(); - let ovk = if output.chg { - Some(FullViewingKey::from(&sk).to_ovk(Scope::Internal)) - }else { - Some(FullViewingKey::from(&sk).to_ovk(Scope::External)) - }; + //let sk = SpendingKey::from_bytes(output.ovk[0..32].try_into().unwrap()).unwrap(); + //let ovk = if output.chg { + //Some(FullViewingKey::from(&sk).to_ovk(Scope::Internal)) + //} else { + //Some(FullViewingKey::from(&sk).to_ovk(Scope::External)) + //}; + let ovk = None; let recipient = OrchardAddress::from_raw_address_bytes(&to_array(output.to)).unwrap(); let val = output.amt; let memo = MemoBytes::from_bytes(&output.memo).unwrap(); -- 2.34.1 From d5e17afc99222a83eadb41db4e8de493f658a97a Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 13:34:26 -0500 Subject: [PATCH 06/10] Debugging parameters --- librustzcash-wrapper/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 04c1139..fbaa5c6 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1804,10 +1804,10 @@ pub extern "C" fn rust_wrapper_create_transaction( } let spend_params_in: Vec = marshall_from_haskell_var(sapspend, sapspend_len, RW); let spend_params_reader = Cursor::new(spend_params_in); - let spend_prover = SpendParameters::read(spend_params_reader, true).unwrap(); + let spend_prover = SpendParameters::read(spend_params_reader, false).unwrap(); let output_params_in: Vec = marshall_from_haskell_var(sapoutput, sapoutput_len, RW); let output_params_reader = Cursor::new(output_params_in); - let output_prover = OutputParameters::read(output_params_reader, true).unwrap(); + let output_prover = OutputParameters::read(output_params_reader, false).unwrap(); println!("loaded params"); let result = if net { println!("started main build"); -- 2.34.1 From 31c5cda65aecb251fd37b996fe603309dd467031 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 13:38:12 -0500 Subject: [PATCH 07/10] Improve error message --- librustzcash-wrapper/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index fbaa5c6..0fe909d 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1831,7 +1831,7 @@ pub extern "C" fn rust_wrapper_create_transaction( marshall_to_haskell_var(&x, out, out_len, RW); }, Error::ChangeRequired(y1) => { - println!("{:?}", y1); + println!("Change required {:#?}", y1); let x = Hhex {bytes: vec![1]}; marshall_to_haskell_var(&x, out, out_len, RW); }, -- 2.34.1 From 6a632d45c1a6dea59d6c4b1e09057682cdc25d11 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 14:07:54 -0500 Subject: [PATCH 08/10] Change error messaging --- librustzcash-wrapper/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 0fe909d..64e2317 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1831,7 +1831,7 @@ pub extern "C" fn rust_wrapper_create_transaction( marshall_to_haskell_var(&x, out, out_len, RW); }, Error::ChangeRequired(y1) => { - println!("Change required {:#?}", y1); + println!("Change required {:?}", y1); let x = Hhex {bytes: vec![1]}; marshall_to_haskell_var(&x, out, out_len, RW); }, -- 2.34.1 From c583451c835e097f53485735c38077b9e155f69b Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 14:30:59 -0500 Subject: [PATCH 09/10] Update debugging --- librustzcash-wrapper/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 64e2317..4af2b56 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1826,12 +1826,10 @@ pub extern "C" fn rust_wrapper_create_transaction( Err(e) => { match e { Error::InsufficientFunds(y) => { - println!("{:?}", y); let x = Hhex {bytes: vec![0]}; marshall_to_haskell_var(&x, out, out_len, RW); }, Error::ChangeRequired(y1) => { - println!("Change required {:?}", y1); let x = Hhex {bytes: vec![1]}; marshall_to_haskell_var(&x, out, out_len, RW); }, -- 2.34.1 From 1e31bb73c228554b2f28e4758526c6f568858093 Mon Sep 17 00:00:00 2001 From: Rene Vergara Date: Thu, 2 May 2024 14:55:24 -0500 Subject: [PATCH 10/10] Update Rust debugging --- librustzcash-wrapper/src/lib.rs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/librustzcash-wrapper/src/lib.rs b/librustzcash-wrapper/src/lib.rs index 4af2b56..a027dc5 100644 --- a/librustzcash-wrapper/src/lib.rs +++ b/librustzcash-wrapper/src/lib.rs @@ -1668,12 +1668,10 @@ pub extern "C" fn rust_wrapper_create_transaction( None } }; - println!("{:?}", orch_anchor); let build_config = BuildConfig::Standard {sapling_anchor: sap_anchor, orchard_anchor: orch_anchor}; let mut main_builder = Builder::new(MainNetwork, BlockHeight::from(bl_height), build_config); let mut test_builder = Builder::new(TestNetwork, BlockHeight::from(bl_height), build_config); let trans_input: Vec = marshall_from_haskell_var(t_input, t_input_len, RW); - println!("{:?}", trans_input); for t_in in trans_input { if t_in.sk.len() > 1 { let k = SecretKey::from_slice(&t_in.sk).unwrap(); @@ -1697,7 +1695,6 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let sap_input: Vec = marshall_from_haskell_var(s_input, s_input_len, RW); - println!("{:?}", sap_input); for s_in in sap_input { if s_in.sk.len() > 1 { let sp_key = ExtendedSpendingKey::from_bytes(&s_in.sk); @@ -1726,7 +1723,6 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let orch_input: Vec = marshall_from_haskell_var(o_input, o_input_len, RW); - println!("{:?}", orch_input); for o_in in orch_input { if o_in.sk.len() > 1 { let sp_key = SpendingKey::from_bytes(o_in.sk[0..32].try_into().unwrap()).unwrap(); @@ -1746,7 +1742,6 @@ pub extern "C" fn rust_wrapper_create_transaction( } } let outputs: Vec = marshall_from_haskell_var(out_list, out_list_len, RW); - println!("{:?}", outputs); for output in outputs { match output.kind { 1 => { @@ -1791,10 +1786,8 @@ pub extern "C" fn rust_wrapper_create_transaction( let memo = MemoBytes::from_bytes(&output.memo).unwrap(); if net { let _mb = main_builder.add_orchard_output::(ovk, recipient, val, memo); - println!("added o-input to main"); } else { let _tb = test_builder.add_orchard_output::(ovk, recipient, val, memo); - println!("added o-input to test"); } }, _ => { @@ -1808,12 +1801,9 @@ pub extern "C" fn rust_wrapper_create_transaction( let output_params_in: Vec = marshall_from_haskell_var(sapoutput, sapoutput_len, RW); let output_params_reader = Cursor::new(output_params_in); let output_prover = OutputParameters::read(output_params_reader, false).unwrap(); - println!("loaded params"); let result = if net { - println!("started main build"); main_builder.build(OsRng, &spend_prover, &output_prover, &FeeRule::standard()) } else { - println!("started test build"); test_builder.build(OsRng, &spend_prover, &output_prover, &FeeRule::standard()) }; match result { -- 2.34.1