Compare commits
2 commits
4ca5d07d1c
...
9dddb42bb3
Author | SHA1 | Date | |
---|---|---|---|
9dddb42bb3 | |||
148abd95d0 |
3 changed files with 86 additions and 64 deletions
|
@ -1643,6 +1643,7 @@ pub extern "C" fn rust_wrapper_create_transaction(
|
||||||
sapoutput_len: usize,
|
sapoutput_len: usize,
|
||||||
net: bool,
|
net: bool,
|
||||||
bl_height: u32,
|
bl_height: u32,
|
||||||
|
build: bool,
|
||||||
out: *mut u8,
|
out: *mut u8,
|
||||||
out_len: &mut usize){
|
out_len: &mut usize){
|
||||||
let sap_wit_in: Vec<u8> = marshall_from_haskell_var(sap_wit, sap_wit_len, RW);
|
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_in: Vec<u8> = marshall_from_haskell_var(sapspend, sapspend_len, RW);
|
||||||
let spend_params_reader = Cursor::new(spend_params_in);
|
let spend_params_reader = Cursor::new(spend_params_in);
|
||||||
let spend_prover = SpendParameters::read(spend_params_reader, false).unwrap();
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,6 +287,7 @@ import ZcashHaskell.Types
|
||||||
, toBorshVar* `BS.ByteString'&
|
, toBorshVar* `BS.ByteString'&
|
||||||
, `Bool'
|
, `Bool'
|
||||||
, `Word64'
|
, `Word64'
|
||||||
|
, `Bool'
|
||||||
, getVarBuffer `Buffer HexString'&
|
, getVarBuffer `Buffer HexString'&
|
||||||
}
|
}
|
||||||
-> `()'
|
-> `()'
|
||||||
|
|
|
@ -133,8 +133,9 @@ createTransaction ::
|
||||||
-> SaplingOutputParams -- ^ the Sapling circuit output parameters
|
-> SaplingOutputParams -- ^ the Sapling circuit output parameters
|
||||||
-> ZcashNet -- ^ the network to be used
|
-> ZcashNet -- ^ the network to be used
|
||||||
-> Int -- ^ target block height
|
-> Int -- ^ target block height
|
||||||
|
-> Bool -- ^ True to build, False to estimate fee
|
||||||
-> Either TxError HexString
|
-> 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
|
if BS.length (hexBytes txResult) > 1
|
||||||
then Right txResult
|
then Right txResult
|
||||||
else case head (BS.unpack $ hexBytes txResult) of
|
else case head (BS.unpack $ hexBytes txResult) of
|
||||||
|
@ -168,3 +169,4 @@ createTransaction sapAnchor orchAnchor tSpend sSpend oSpend outgoing sParams oPa
|
||||||
(sapOParams oParams)
|
(sapOParams oParams)
|
||||||
(znet == MainNet)
|
(znet == MainNet)
|
||||||
(fromIntegral bh)
|
(fromIntegral bh)
|
||||||
|
build
|
||||||
|
|
Loading…
Reference in a new issue