Compare commits

...

2 commits

3 changed files with 86 additions and 64 deletions

View file

@ -1643,6 +1643,7 @@ pub extern "C" fn rust_wrapper_create_transaction(
sapoutput_len: usize,
net: bool,
bl_height: u32,
build: bool,
out: *mut u8,
out_len: &mut usize){
let sap_wit_in: Vec<u8> = marshall_from_haskell_var(sap_wit, sap_wit_len, RW);
@ -1794,6 +1795,7 @@ pub extern "C" fn rust_wrapper_create_transaction(
}
}
}
if build {
let spend_params_in: Vec<u8> = 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, false).unwrap();
@ -1861,4 +1863,21 @@ pub extern "C" fn rust_wrapper_create_transaction(
}
}
}
} else {
let result = if net {
main_builder.get_fee(&FeeRule::standard())
} else {
test_builder.get_fee(&FeeRule::standard())
};
match result {
Ok(r) => {
let x = Hhex {bytes: r.to_i64_le_bytes().to_vec()};
marshall_to_haskell_var(&x, out, out_len, RW);
},
Err(e) => {
let x = Hhex {bytes: vec![2]};
marshall_to_haskell_var(&x, out, out_len, RW);
}
}
}
}

View file

@ -287,6 +287,7 @@ import ZcashHaskell.Types
, toBorshVar* `BS.ByteString'&
, `Bool'
, `Word64'
, `Bool'
, getVarBuffer `Buffer HexString'&
}
-> `()'

View file

@ -133,8 +133,9 @@ createTransaction ::
-> SaplingOutputParams -- ^ the Sapling circuit output parameters
-> ZcashNet -- ^ the network to be used
-> Int -- ^ target block height
-> Bool -- ^ True to build, False to estimate fee
-> Either TxError HexString
createTransaction sapAnchor orchAnchor tSpend sSpend oSpend outgoing sParams oParams znet bh =
createTransaction sapAnchor orchAnchor tSpend sSpend oSpend outgoing sParams oParams znet bh build =
if BS.length (hexBytes txResult) > 1
then Right txResult
else case head (BS.unpack $ hexBytes txResult) of
@ -168,3 +169,4 @@ createTransaction sapAnchor orchAnchor tSpend sSpend oSpend outgoing sParams oPa
(sapOParams oParams)
(znet == MainNet)
(fromIntegral bh)
build